2012-03-08 3 views
-1

мне нужна помощь с получением некоторых элементов в этом выводе Nokogiri из API LinkedIn (это больше Рубина/Nokogiri вопрос, чем это API вопрос LinkedIn)LinkedIn API с pengwynn игровой 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> 

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

+0

Что вы используете для вызова 'компании' в драгоценном камне? – ScottJShea

+0

Я на самом деле профиль с позициями в качестве селектора полей: http://api.linkedin.com/v1/people/~(:positions), и каждая позиция имеет раздел компании, где есть идентификатор, имя, размер, тикер , промышленность и т. д. – bachposer

+0

Можете ли вы опубликовать свой код, который вы используете, чтобы попасть в 'LinkedIn :: Company' xml? – ScottJShea

ответ

2

Я не уверен, что Nokogiri - это путь. Я использовал прямой 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 

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

+0

Спасибо Скотту. Я видел, что драгоценный камень на github имел устойчивую ветвь ветвь, и когда я использовал это, он, казалось, работал нормально – bachposer

Смежные вопросы