class UnderFire::AlbumFetch

Builds XML for Gracenote's ALBUM_FETCH query.

@see developer.gracenote.com/sites/default/files/web/html/index.html#Music%20Web%20API/ALBUM_FETCH.html#_Toc344907262

@example

search = UnderFire::Album_Fetch.new(:gn_id => '86372321-2C7F28ADC369EB90E53A7F6CA3A70D56')
search.query => Response = The Beatles, Help!

Attributes

gn_id[RW]

@return [String] Gracenote ID for album

parameters[R]

@return [Hash] Search parameters with :mode removed.

query[R]

@return [String] XML string for query.

Public Class Methods

new(args) click to toggle source

Requires album :gn_id or track :gn_id

@param [Hash] args the arguments for Album_Fetch @option args [String] :gn_id Gracenote ID of album or track @option args [String] :mode Either 'SINGLE_BEST' or 'SINGLE_BEST_COVER'

(Only needed if track :gn_id used)
Calls superclass method
# File lib/under_fire/album_fetch.rb, line 28
def initialize(args)
  super args
  @parameters = args.reject {|k,v| k == :mode}
  parameters.each do |k,v| send("#{k}=", v) end
  @query = build_query
end

Public Instance Methods

build_query() click to toggle source

Builds ALBUM_FETCH-specific part of ALBUM_FETCH query and adds it to the base query common to all query types. Called by constructor.

@return [String] XML string for ALBUM_FETCH query.

# File lib/under_fire/album_fetch.rb, line 39
def build_query
  build_base_query do |builder|
    builder.QUERY(cmd: "ALBUM_FETCH"){
      builder.MODE "SINGLE_BEST_COVER"
      parameters.each do |k,v|
        builder.GN_ID gn_id
      end
    }
  end
end