Class: Habr::Loader

Inherits:
Object
  • Object
show all
Defined in:
lib/habr.rb

Class Method Summary collapse

Class Method Details

.load_user_data(user_name) ⇒ Object


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/habr.rb', line 13

def load_user_data(user_name)
  url = Habr::HABR_API_PROFILE_URL.gsub('%%username%%', CGI.escape(user_name)).to_s
  doc = Nokogiri::XML(open(url,
    'Content-type' => 'text/xml',
    'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.57 Safari/534.24'
  ))
  data = {}
  error = nil
  doc.css('habrauser error').each do |e|
    error = e.content.to_s
  end
  raise "Data loading error: #{error}" if !error.nil?
  Habr::User::FIELDS.each do |f|
    doc.css("habrauser #{f.to_s}").each do |field|
      data[f] = field.content.to_s
    end
  end
  data
end