Sha256: 8420c37d79e6cf6c86829923fa67ceacb2521beb3ab5a03fd380483e4744f107
Contents?: true
Size: 1.32 KB
Versions: 2
Compression:
Stored size: 1.32 KB
Contents
module MetaSpotify class Album < MetaSpotify::Base URI_REGEX = /^spotify:album:[A-Za-z0-9]+$/ attr_reader :released, :artists, :available_territories, :tracks def initialize(hash) @name = hash['name'] if hash.has_key? 'artist' @artists = [] if hash['artist'].is_a? Array hash['artist'].each { |a| @artists << Artist.new(a) } else @artists << Artist.new(hash['artist']) end end if hash.has_key? 'tracks' @tracks = [] if hash['tracks']['track'].is_a? Array hash['tracks']['track'].each { |a| @tracks << Track.new(a) } else @tracks << Track.new(hash['tracks']['track']) end end @released = hash['released'] if hash.has_key? 'released' @uri = hash['href'] if hash.has_key? 'href' @available_territories = if hash.has_key?('availability') && !hash['availability']['territories'].nil? hash['availability']['territories'].split(/\s+/).map {|t| t.downcase } || [] else [] end end def is_available_in?(territory) return @available_territories.include?('worldwide') || @available_territories.include?(territory.downcase) end def is_not_available_in?(territory) return !is_available_in?(territory) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
meta-spotify-0.1.1 | lib/meta-spotify/album.rb |
meta-spotify-0.1.0 | lib/meta-spotify/album.rb |