Sha256: c6e8221ac02ada1c2a9b71aa3af7be1648abeb8c4a17237c84b3fb0e6afd79b8

Contents?: true

Size: 934 Bytes

Versions: 4

Compression:

Stored size: 934 Bytes

Contents

module Genius
  class Artist < Resource
    attr_reader :name, :image_url, :id, :url, :user, :tracking_paths, :description

    def parse_resource!
      @id = resource["id"]
      @name = resource["name"]
      @image_url = resource["image_url"]
      @url = resource["url"]
      @user = Account.from_hash(resource["user"])
      @description = formatted_attribute("description")
      @tracking_paths = resource["tracking_paths"]
    end

    def songs(params: {}, headers: {})
      headers = self.class.default_headers.merge(headers)
      params = self.class.default_params.merge(id: id).merge(params)

      response = self.class.http_get("/#{resource_name}s/#{id}/songs", query: params,
                                                                       headers: headers)

      response.parsed_response["response"]["songs"].map do |song|
        Song.from_hash(song, text_format: text_format)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
genius-0.1.2 lib/genius/artist.rb
genius_fixed-0.1.2 lib/genius/artist.rb
genius-0.1.1 lib/genius/artist.rb
genius-0.1.0 lib/genius/artist.rb