class PhoneSites::GsmArena::Manufacturer
Public Class Methods
all()
click to toggle source
# File lib/phone_sites/gsm_arena/manufacturer.rb, line 52 def self.all url = manufacturers_url manufacturer_response.perform(url) end
base_url()
click to toggle source
# File lib/phone_sites/gsm_arena/manufacturer.rb, line 48 def self.base_url GsmArena::BASE_URL end
manufacturer_response()
click to toggle source
# File lib/phone_sites/gsm_arena/manufacturer.rb, line 36 def self.manufacturer_response GsmArena::ManufacturersListResponse.new end
manufacturers_url()
click to toggle source
# File lib/phone_sites/gsm_arena/manufacturer.rb, line 44 def self.manufacturers_url ::URI.join(GsmArena::BASE_URL, GsmArena::MANUFACTURERS_URL).to_s end
models_response()
click to toggle source
# File lib/phone_sites/gsm_arena/manufacturer.rb, line 40 def self.models_response PhoneSites::GsmArena::ModelListResponse.new end
Public Instance Methods
build_url(page)
click to toggle source
# 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()
click to toggle source
# 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
pages_count()
click to toggle source
# File lib/phone_sites/gsm_arena/manufacturer.rb, line 27 def pages_count (count.to_f / PhoneSites::GsmArena::PhoneModel::ITEMS_PER_PAGE).ceil end
parse(data, attr_name)
click to toggle source
# 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