Sha256: d52bf52d468c49263a6d3f4ccf00c9799764c39bcfad8e5c243d582771bc7a7e
Contents?: true
Size: 1.35 KB
Versions: 1
Compression:
Stored size: 1.35 KB
Contents
require 'httparty' class ITunes include HTTParty base_uri 'ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/ws' format :json def method_missing(name, *args) methods = %q{movie podcast music music_video audiobook short_film tv_show all} if methods.include?(name.to_s) camelcase = name.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase } camelcase[0] = camelcase[0].chr.downcase request(args.first, camelcase) else super(name, *args) end end # So you don't have to create an instance if you don't need to def self.music(terms) self.new.music(terms) end def self.podcast(terms) self.new.podcast(terms) end def self.movie(terms) self.new.movie(terms) end def self.music_video(terms) self.new.music_video(terms) end def self.audiobook(terms) self.new.audiobook(terms) end def self.short_film(terms) self.new.short_film(terms) end def self.tv_show(terms) self.new.tv_show(terms) end def self.all(terms) self.new.all(terms) end private def request(term, media='all') raise ArgumentError, 'you need to search for something, provide a term.' if term.nil? self.class.get('Search', { :query => { :term => term, :media => media } }) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
itunes-0.2.0 | lib/itunes.rb |