class EchoNest::Request
Constants
- BASE_URL
Attributes
bucket_params[R]
params[R]
path[R]
Public Class Methods
get(path, opts={})
click to toggle source
# File lib/another_echonest_ruby_api/request.rb, line 23 def self.get(path, opts={}) request = Request.new(path, opts) request.get_response end
new(path, opts={})
click to toggle source
# File lib/another_echonest_ruby_api/request.rb, line 13 def initialize(path, opts={}) @path = path @params = opts @bucket_params = if bucket = opts.delete(:bucket) bucket.is_a?(Array) ? bucket : [bucket] else [] end end
Public Instance Methods
api_key()
click to toggle source
# File lib/another_echonest_ruby_api/request.rb, line 70 def api_key EchoNest.config.api_key end
build_params()
click to toggle source
# File lib/another_echonest_ruby_api/request.rb, line 50 def build_params {param_name => params} end
build_response(data)
click to toggle source
# File lib/another_echonest_ruby_api/request.rb, line 46 def build_response(data) Response.new(:raw_json => data.to_str, :request => self) end
build_url()
click to toggle source
# File lib/another_echonest_ruby_api/request.rb, line 54 def build_url url = url_with_creds if params.any? parts = [] params.each_pair do |name, value| parts << "#{URI.escape(name.to_s)}=#{URI.escape(value.to_s)}" end bucket_params.each do |value| parts << "bucket=#{value}" end url = "#{url}&#{parts.join('&')}" end # puts "url: #{url.inspect}" url end
get_response()
click to toggle source
# File lib/another_echonest_ruby_api/request.rb, line 28 def get_response response = RestClient.get(build_url) do |response, request, result, &block| # puts "response.code: #{response.code.inspect}" # puts "response.body: #{response.body.inspect}" if [200, 400].include? response.code build_response(response.body) else raise RequestException, "Unexpected response code: #{response.code}" end end if response.error? raise RequestException, "The following errors were returned: #{response.message.inspect}" else response end end
url_with_creds()
click to toggle source
# File lib/another_echonest_ruby_api/request.rb, line 74 def url_with_creds "#{BASE_URL}#{path}?api_key=#{api_key}&format=json" end