class MusicBrainz::Query

Attributes

fetch[RW]
original_query[RW]
results[RW]
score[RW]
top_match[RW]

Public Class Methods

new(query, method, fetch) click to toggle source
# File lib/musicbrainz/query.rb, line 9
def initialize(query, method, fetch)
  method=method[:entity]
  fetch=fetch[:fetch]
  @fetch=fetch if fetch.is_a?(Hash) && fetch.present? && fetch.has_key?(:fetch)
  @fetch=fetch if fetch.is_a?(Array) && fetch.present?
  @fetch=Array.new<<fetch  if fetch.is_a?(String) && fetch.present?
  available_methods=['artist', 'release', 'release-group', 'recording', 'work', 'label']
  method= available_methods.include?(method) ? method : nil
  if query.kind_of?(String)
    @query= query.is_mbid ? [:mbid, query] : query
  elsif query.kind_of?(Hash)
    @query=Hash.new
    query.each_pair do |k, v|
      @query[k]=v
    end
  else
    return false
  end
  #Now, transferring to query format.
  query_a=Array.new
  @query.each_pair do |k, v|
    if k==:date
      v=v.to_date
      v="#{v-7.days} TO #{v}"
    end
    query_a<<"#{k}:#{v}"
  end
  @original_query=query_a
  query_s=String.new
  query_s=URI.encode(query_a.join("AND"))
  #Dealing with non-mbid...
  get_query(method, query_s,fetch)
end

Public Instance Methods

get_query(method, query,fetch=[]) click to toggle source
# File lib/musicbrainz/query.rb, line 47
def get_query(method, query,fetch=[])
  puts method
  puts query
  puts fetch
  @request=self.class.get_query_path(method, query)
  #Find the highest score.
  @results=@request
  list="#{method}_list"
  case method
    when 'release'
      @results=@request['metadata'][list][method]
      @score=@results[0]['ext:score']
      if @score=='100'
        puts @results[0]['id']
        @top_match=MusicBrainz::Release.new(@results[0]['id'], fetch)

      end
    when 'artist'
      @results=@request['metadata'][list][method]
      @score=@results[0]['ext:score']
      if @score=='100'
        @top_match=MusicBrainz::Artist.new(@results['id'], fetch)
      end

    when 'release-group'
    when 'recording'
    when 'work'
    when 'label'


  end
end
inspect() click to toggle source
# File lib/musicbrainz/query.rb, line 43
def inspect
  "#{@method}  ,#{@query} : #{@results}, #{@score}"
end