class Memphis::Client
Constants
- FOREIGN_PROVIDERS
Public Class Methods
new()
click to toggle source
# File lib/memphis/client.rb, line 26 def initialize raise DirectClientUserError, "You cannot instantiate Client class directly" if self.class == Memphis::Client if Memphis.api_key.nil? raise EmptyAPIKeyError, "If you don't already have an an account, register here: https://developer.echonest.com/account/register" end end
Public Instance Methods
client_search(search_base_uri, id)
click to toggle source
# File lib/memphis/client.rb, line 34 def client_search search_base_uri, id if id.to_s == "" raise EmptySearchIDError, "need to pass in an The Echo Nest artist ID, such as: \"ARH6W4X1187B99274F\"" end @id = id results_hash = get_foreign_id_hash search_base_uri result = Result.new(results_hash) result end
Private Instance Methods
get_foreign_id_hash(search_base_uri)
click to toggle source
# File lib/memphis/client.rb, line 49 def get_foreign_id_hash search_base_uri uri = search_base_uri uri += "api_key=#{Memphis.api_key}" uri += "&id=#{@id}" uri += provider_params parse_response HTTParty.get(uri) end
parse_response(http_response)
click to toggle source
# File lib/memphis/client.rb, line 62 def parse_response http_response foreign_ids = {} # Also put the echonest artist name in there, even though # it's not technically a "foreign" id foreign_ids["echonest"] = http_response["response"]["artist"]["name"] http_response['response']['artist']['foreign_ids'].each do |hash| id_parts = hash["foreign_id"].split(':') provider = FOREIGN_PROVIDERS[id_parts[0]] foreign_id = id_parts[2] foreign_ids[provider] = foreign_id end foreign_ids end
provider_params()
click to toggle source
# File lib/memphis/client.rb, line 58 def provider_params "&bucket=id:" + FOREIGN_PROVIDERS.keys.join('&bucket=id:') end