API LinkedIn с самоцветом LinkedIn Пенгвинна - PullRequest
0 голосов
/ 09 марта 2012

Мне нужна помощь в получении некоторых элементов в этом выводе Nokogiri из API-интерфейса LinkedIn (это скорее вопрос Ruby / Nokogiri, чем вопрос API-интерфейса LinkedIn)

#<LinkedIn::Company:0x00000102c466e0 @doc=[#<Nokogiri::XML::Element:0x94017c5c     name="company" children=[#<Nokogiri::XML::Text:0x94017978 "\n        ">, #<Nokogiri::XML::Element:0x94017770 name="id" children=[#<Nokogiri::XML::Text:0x940173ec "1234">]>, #<Nokogiri::XML::Text:0x940165c8 "\n        ">, #<Nokogiri::XML::Element:0x94016320 name="name" children=[#<Nokogiri::XML::Text:0x94015d30 "Company Foo">]>, #<Nokogiri::XML::Text:0x94015768 "\n        ">, #<Nokogiri::XML::Element:0x94015560 name="size" children=[#<Nokogiri::XML::Text:0x94014ffc "501-1000 employees">]>, #<Nokogiri::XML::Text:0x94003770 "\n        ">, #<Nokogiri::XML::Element:0x94002438 name="type" children=[#<Nokogiri::XML::Text:0x817f9b7c "Public Company">]>, #<Nokogiri::XML::Text:0x817f95c8 "\n        ">, #<Nokogiri::XML::Element:0x817f93e8 name="industry" children=[#<Nokogiri::XML::Text:0x817f91a4 "SomeIndustry">]>, #<Nokogiri::XML::Text:0x817f8f4c "\n        ">, #<Nokogiri::XML::Element:0x817f8e48 name="ticker" children=[#<Nokogiri::XML::Text:0x817f8b3c "FOO">]>, #<Nokogiri::XML::Text:0x817f88d0 "\n      ">]>]> 

Я легко могу получить некоторые атрибуты компании - это company.name, company.type и company.industry, но другие, такие как company.id, company.size и company.ticker, приводят к ошибке NoMethod :

NoMethodError: undefined method `size' for #<LinkedIn::Company:0x00000102c42310>

Почему это - я могу увидеть это в объекте, но не могу получить к нему доступ! Что я делаю не так?

1 Ответ

2 голосов
/ 10 марта 2012

Я не уверен, что Нокогири - это путь. Я использовал прямой объект LinkedIn :: Mash и сделал это:

user = client.profile(:fields => %w(positions))
companies = user.positions.all.map{|t| t.company}
companies.each do |company|
    #ap company.inspect
    #ap "meow\n"
    if company.id
        ap "ID: #{company.id}"
    else
        ap "ID not present"
    end
    if company.industry
        ap "Industry: #{company.industry}"
    else
        ap "Industry not present"
    end
    if company.name
        ap "Name: #{company.name}"
    else
        ap "Name not present"
    end
    if company.size
        ap "Size: #{company.size}"
    else
        ap "Size not present"
    end
    if company.type
        ap "Type: #{company.type}"
    else
        ap "Type not present"
    end
    if company.ticker
        ap "Ticker: #{company.ticker}"
    else
        ap "Ticker not present"
    end 
end

Атрибуты не всегда присутствуют, поэтому я сделал странность if / else, чтобы показать, что я хотя бы получаю объект. В любом случае, если есть, я получаю атрибуты и печатаю их.

...