lib/lastfm.rb in lastfm-1.14.1 vs lib/lastfm.rb in lastfm-1.15.0
- old
+ new
@@ -3,10 +3,12 @@
require 'httparty'
require 'active_support/core_ext/string/inflections'
require 'lastfm/util'
require 'lastfm/response'
+require 'lastfm/http_request.rb'
+require 'lastfm/https_request.rb'
require 'lastfm/method_category/base'
require 'lastfm/method_category/album'
require 'lastfm/method_category/artist'
require 'lastfm/method_category/auth'
require 'lastfm/method_category/event'
@@ -18,15 +20,10 @@
require 'lastfm/method_category/user'
require 'lastfm/method_category/chart'
require 'lastfm/method_category/radio'
class Lastfm
- API_ROOT = 'http://ws.audioscrobbler.com/2.0'
-
- include HTTParty
- base_uri API_ROOT
-
attr_accessor :session
class Error < StandardError; end
class ApiError < Error
attr_reader :code
@@ -88,11 +85,11 @@
def radio
MethodCategory::Radio.new(self)
end
- def request(method, params = {}, http_method = :get, with_signature = false, with_session = false)
+ def request(method, params = {}, http_method = :get, with_signature = false, with_session = false, use_https = false)
params[:method] = method
params[:api_key] = @api_key
params.each do |k, v|
if v.nil?
@@ -104,10 +101,18 @@
#params[:format] = format
params.update(:sk => @session) if with_session
params.update(:api_sig => Digest::MD5.hexdigest(build_method_signature(params))) if with_signature
- response = Response.new(self.class.send(http_method, '/', (http_method == :post ? :body : :query) => params).body)
+ request_args = [http_method, '/', (http_method == :post ? :body : :query) => params]
+
+ response = if use_https
+ HTTPSRequest.send(*request_args)
+ else
+ HTTPRequest.send(*request_args)
+ end
+
+ response = Response.new(response.body)
unless response.success?
raise ApiError.new(response.message, response.error)
end
response