Sha256: 7a9dc14b685938590fc6ee5adb457d0d2e4ab87b423de1fbe57972298ea95676

Contents?: true

Size: 581 Bytes

Versions: 3

Compression:

Stored size: 581 Bytes

Contents

module ItunesApi
  module Music
    # Artists or Bands resulting from a search
    class ArtistSearch
      attr_reader_init :name
      selfie :artists

      def artists
        @artists ||= artist_ids.map { |id| build_artist(id) }.compact
      end

      private

      def artist_ids
        @search ||= ItunesApi.artist_ids(name)
      end

      def build_artist(id)
        if (lookup = lookup(id))
          Artist.new(lookup)
        end
      end

      def lookup(id)
        Requests::Lookup.artist_with_albums(id)
      rescue
        nil
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
itunes_api-0.8.2 lib/itunes_api/music/artist_search.rb
itunes_api-0.8.1 lib/itunes_api/music/artist_search.rb
itunes_api-0.8.0 lib/itunes_api/music/artist_search.rb