module Spof::Lookup

Public Class Methods

album(spotify_uri, *extras) click to toggle source
# File lib/lookup.rb, line 5
def self.album(spotify_uri, *extras)
  check_extras(extras, [:track, :trackdetail])
  return get(spotify_uri, *extras)
end
artist(spotify_uri, *extras) click to toggle source
# File lib/lookup.rb, line 10
def self.artist(spotify_uri, *extras)
  check_extras(extras,  [:album, :albumdetail])
  return get(spotify_uri, *extras)
end
get(spotify_uri, *extras) click to toggle source
# File lib/lookup.rb, line 19
def self.get(spotify_uri, *extras)
  uri = URI('http://ws.spotify.com/lookup/1/.json')
  uri.query = URI.encode_www_form({
    :uri => spotify_uri,
    :extras => extras
    })
  response = Net::HTTP.get(uri)
  return uri.to_s if Spof.testing?
  return JSON.parse(response, :symbolize_names => true)
end
track(spotify_uri) click to toggle source
# File lib/lookup.rb, line 15
def self.track(spotify_uri)
  return get(spotify_uri)
end

Private Class Methods

check_extras(extras, legal_extras) click to toggle source
# File lib/lookup.rb, line 31
def self.check_extras(extras, legal_extras)
  extras.each do |e|
    raise Spof::SpofError, "Illegal extra" if not legal_extras.include?(e)
  end
end