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