Skip to content

Instantly share code, notes, and snippets.

@mediocretes
Created May 10, 2017 01:38
Show Gist options
  • Save mediocretes/9dcde23f3feb0303293cd2558a541399 to your computer and use it in GitHub Desktop.
Save mediocretes/9dcde23f3feb0303293cd2558a541399 to your computer and use it in GitHub Desktop.
Just... so much.
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