Created
May 10, 2017 01:38
-
-
Save mediocretes/9dcde23f3feb0303293cd2558a541399 to your computer and use it in GitHub Desktop.
Just... so much.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/lib/fuelsdk/http_request.rb b/lib/fuelsdk/http_request.rb | |
index 335d64e..f7d1510 100644 | |
--- a/lib/fuelsdk/http_request.rb | |
+++ b/lib/fuelsdk/http_request.rb | |
@@ -42,34 +42,31 @@ module FuelSDK | |
class HTTPResponse < FuelSDK::Response | |
- def initialize raw, client, request | |
- super raw, client | |
+ def initialize(raw, client, request) | |
+ super(raw, client) | |
@request = request | |
end | |
def continue | |
- rsp = nil | |
if more? | |
- @request['options']['page'] = @results['page'].to_i + 1 | |
- rsp = unpack @client.rest_get(@request['url'], @request['options']) | |
+ @request['options']['page'] = @results['page'].to_i + 1 | |
+ unpack(@client.rest_get(@request['url'], @request['options'])) | |
else | |
- puts 'No more data' | |
+ puts "No more data" | |
end | |
- | |
- rsp | |
end | |
- def [] key | |
+ def [](key) | |
@results[key] | |
end | |
private | |
- def unpack raw | |
- @code = raw.code.to_i | |
+ def unpack(raw) | |
+ @code = raw.code.to_i | |
@message = raw.message | |
- @body = JSON.parse(raw.body) rescue {} | |
+ @body = JSON.parse(raw.body) rescue {} | |
@results = @body | |
- @more = ((@results['count'] || @results['totalCount']) > @results['page'] * @results['pageSize']) rescue false | |
+ @more = ((@results['count'] || @results['totalCount']) > (@results['page'] * @results['pageSize'])) rescue false | |
@success = @message == 'OK' | |
end | |
@@ -82,35 +79,35 @@ module FuelSDK | |
module HTTPRequest | |
request_methods = ['get', 'post', 'patch', 'delete'] | |
+ | |
request_methods.each do |method| | |
- class_eval <<-EOT, __FILE__, __LINE__ + 1 | |
- def #{method}(url, options={}) # def post(url, options) | |
- request Net::HTTP::#{method.capitalize}, url, options # request Net::HTTP::Post, url, options | |
- end # end | |
- EOT | |
+ define_method(method) do |url, options = {}| | |
+ http_method = Object.const_get("Net::HTTP::#{method.capitalize}") | |
+ request(http_method, url, options) | |
+ end | |
end | |
private | |
- def generate_uri(url, params=nil) | |
- uri = URI.parse(url) | |
- uri.query = URI.encode_www_form(params) if params | |
- uri | |
- end | |
+ def generate_uri(url, params) | |
+ uri = URI.parse(url) | |
+ uri.query = URI.encode_www_form(params) if params | |
+ uri | |
+ end | |
- def request(method, url, options={}) | |
- uri = generate_uri url, options['params'] | |
+ def request(method, url, options = {}) | |
+ uri = generate_uri(url, options['params']) | |
- http = Net::HTTP.new(uri.host, uri.port) | |
- http.use_ssl = true | |
+ http = Net::HTTP.new(uri.host, uri.port) | |
+ http.use_ssl = true | |
- data = options['data'] | |
- _request = method.new uri.request_uri | |
- _request.body = data.to_json if data | |
- _request.content_type = options['content_type'] if options['content_type'] | |
- response = http.request(_request) | |
+ data = options['data'] | |
+ request = method.new(uri.request_uri) | |
+ request.body = data.to_json if data | |
+ request.content_type = options['content_type'] if options['content_type'] | |
+ response = http.request(request) | |
- HTTPResponse.new(response, self, :url => url, :options => options) | |
- end | |
+ HTTPResponse.new(response, self, :url => url, :options => options) | |
+ end | |
end | |
end | |
diff --git a/lib/fuelsdk/targeting.rb b/lib/fuelsdk/targeting.rb | |
index 84d53fb..5f9e063 100644 | |
--- a/lib/fuelsdk/targeting.rb | |
+++ b/lib/fuelsdk/targeting.rb | |
@@ -41,18 +41,15 @@ module FuelSDK::Targeting | |
include FuelSDK::HTTPRequest | |
def endpoint | |
- unless @endpoint | |
- determine_stack | |
- end | |
- @endpoint | |
+ @endpoint ||= determine_stack | |
end | |
protected | |
- def determine_stack | |
- options = {'params' => {'access_token' => self.access_token}} | |
- response = get("https://www.exacttargetapis.com/platform/v1/endpoints/soap", options) | |
- @endpoint = response['url'] | |
- rescue => e | |
- raise 'Unable to determine stack using: ' + e.message | |
- end | |
+ def determine_stack | |
+ options = {"params" => {"access_token" => self.access_token}} | |
+ response = get("https://www.exacttargetapis.com/platform/v1/endpoints/soap", options) | |
+ response["url"] | |
+ rescue => e | |
+ raise "Unable to determine stack using: " + e.message | |
+ end | |
end | |
diff --git a/lib/fuelsdk/utils.rb b/lib/fuelsdk/utils.rb | |
index e719b97..321408e 100644 | |
--- a/lib/fuelsdk/utils.rb | |
+++ b/lib/fuelsdk/utils.rb | |
@@ -36,12 +36,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
module FuelSDK | |
module_function | |
- def format_name_value_pairs attributes | |
- attrs = [] | |
- attributes.each do |name, value| | |
- attrs.push 'Name' => name, 'Value' => value | |
- end | |
- attrs | |
+ def format_name_value_pairs(attributes) | |
+ attributes.each_pair.with_object([]) do |(name, value), output| | |
+ output << { "Name" => name, "Value" => value } | |
end | |
+ end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment