Class: PhoneSites::GsmArena::Manufacturer
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Base
#initialize, parseable_attributes
Class Method Details
.all ⇒ Object
52
53
54
55
|
# File 'lib/phone_sites/gsm_arena/manufacturer.rb', line 52
def self.all
url = manufacturers_url
manufacturer_response.perform(url)
end
|
.base_url ⇒ Object
48
49
50
|
# File 'lib/phone_sites/gsm_arena/manufacturer.rb', line 48
def self.base_url
GsmArena::BASE_URL
end
|
.manufacturer_response ⇒ Object
.manufacturers_url ⇒ Object
.models_response ⇒ Object
Instance Method Details
#build_url(page) ⇒ Object
31
32
33
34
|
# File 'lib/phone_sites/gsm_arena/manufacturer.rb', line 31
def build_url(page)
url_end = page.zero? ? url : url.gsub(".php", "-#{page}.php")
URI.join(self.class.base_url, url_end).to_s
end
|
#models ⇒ Object
21
22
23
24
25
|
# File 'lib/phone_sites/gsm_arena/manufacturer.rb', line 21
def models
pages_count.times.inject([]) do |sum, i|
sum.concat(self.class.models_response.perform(build_url(i)))
end
end
|
#parse(data, attr_name) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/phone_sites/gsm_arena/manufacturer.rb', line 7
def parse(data, attr_name)
case attr_name
when :name
data.children.select { |x| x.is_a?(Nokogiri::XML::Text) }.first.text
when :url
data.get_attribute("href")
when :count
data.children.select { |x| x.is_a?(Nokogiri::XML::Element) && x.name == "span" }
.first.children.first.text.split(" ").first.to_i
else
raise NotImplementedError
end
end
|