Class: ExUA::Client
Constant Summary collapse
- KNOWN_BASE_CATEGORIES =
%w[video audio images texts games software]
Instance Method Summary collapse
-
#available_languages ⇒ Array<String>
List of available languages.
-
#base_categories(lang) ⇒ Array<ExUA::Category>
List of base categories for a given language @param lang Language.
- #get(request_uri) ⇒ Object
- #search(text, page = 0, per = 20) ⇒ Object
Instance Method Details
#available_languages ⇒ Array<String>
List of available languages
33 34 35 |
# File 'lib/ex_ua/client.rb', line 33 def available_languages @available_langauges ||= get('/').search('select[name=lang] option').inject({}){|acc,el| acc[el.attributes["value"].value]=el.text;acc} end |
#base_categories(lang) ⇒ Array<ExUA::Category>
List of base categories for a given language @param lang Language
42 43 44 |
# File 'lib/ex_ua/client.rb', line 42 def base_categories(lang) KNOWN_BASE_CATEGORIES.map{|cat| Category.new(url: "/#{lang}/#{cat}")} end |
#get(request_uri) ⇒ Object
56 57 58 |
# File 'lib/ex_ua/client.rb', line 56 def get(request_uri) Nokogiri.parse(HTTParty.get(Addressable::URI.join(ExUA::BASE_URL,request_uri).to_s).body) end |
#search(text, page = 0, per = 20) ⇒ Object
46 47 48 49 50 51 52 53 54 |
# File 'lib/ex_ua/client.rb', line 46 def search(text, page=0, per=20) uri = Addressable::URI.parse("/search?#{Addressable::URI.form_encode(s: text, p: page, per: per)}") page = get(uri) page.search('table.panel tr td').map do |s| s.search('a')[1] end.compact.map do |link| ExUA::Category.new(url: link.attributes['href'], name: link.text) end end |