class Iconik::ITunes
Attributes
country[R]
scraping[R]
Public Class Methods
new(url, scraping: false, country: nil)
click to toggle source
# File lib/iconik/i_tunes.rb, line 7 def initialize(url, scraping: false, country: nil) @scraping = scraping @url = url @country = country end
Public Instance Methods
pluck_icon()
click to toggle source
# File lib/iconik/i_tunes.rb, line 13 def pluck_icon country_params = country ? "&country=#{country}" : "&country=jp" get_url = scraping ? @url : "http://itunes.apple.com/lookup?id=#{pluck_app_id(url)}#{country_params}" @client = Iconik::HttpClient.new(get_url) scraping ? pluck_icon_for_scraping : pluck_icon_for_json end
Private Instance Methods
pluck_app_id(url)
click to toggle source
# File lib/iconik/i_tunes.rb, line 38 def pluck_app_id(url) md = url.match(/\/id([0-9]+)/) if md md[1] else raise Iconik::InvalidURIError.new end end
pluck_icon_for_json()
click to toggle source
# File lib/iconik/i_tunes.rb, line 32 def pluck_icon_for_json j = JSON.parse(client.response_body) raise Iconik::ResultCountZero if j['resultCount'] == 0 j['results'][0]['artworkUrl60'] end
pluck_icon_for_scraping()
click to toggle source
# File lib/iconik/i_tunes.rb, line 21 def pluck_icon_for_scraping r = client.response_body doc = Nokogiri::HTML.parse(r, nil, nil) elem = doc.xpath('//*[@id="left-stack"]/div[1]/a[1]/div/img') if elem.size > 0 elem[0][:'src-swap'] else raise Iconik::UnknownAppError end end