Sha256: ed90beb18214c754832858f8e9ea96416d6e6abb9c5b1f52fb0efd8e422f5e5b
Contents?: true
Size: 1.3 KB
Versions: 3
Compression:
Stored size: 1.3 KB
Contents
require 'date' module ItunesApi module Music # Wrapper for album results. class Album attr_reader_init :data, :store private :data def self.build(albums_data, store) albums_data.map { |data| new(data, store) } .sort_by(&:released) .reverse end def artwork @artwork ||= data[:artworkUrl100] end def availability prefix = pre_release? ? 'pre_release_' : '' if apple_music? "#{prefix}streaming".to_sym else "#{prefix}sale".to_sym end end def collection_id @collection_id ||= data[:collectionId] end def name @name ||= data[:collectionName] end def released @released ||= Date.parse(data[:releaseDate]) end def to_hash { artwork: artwork, collection_id: collection_id, name: name, released: released, availability: availability, store: store } end private def apple_music? tracklist.any?(&:streamable?) end def pre_release? released > Date.today end def tracklist @tracklist ||= AlbumLookup.tracklist(collection_id, store) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
itunes_api-1.4.1 | lib/itunes_api/music/album.rb |
itunes_api-1.4.0 | lib/itunes_api/music/album.rb |
itunes_api-1.3.1 | lib/itunes_api/music/album.rb |