class Typhoid::RequestBuilder

Attributes

klass[RW]
method[W]
request_options[RW]
request_uri[RW]

Public Class Methods

new(klass, uri, options = {}) click to toggle source
# File lib/typhoid/request_builder.rb, line 9
def initialize(klass, uri, options = {})
  self.request_uri = uri
  self.request_options = options || {}
  self.klass = klass
end

Public Instance Methods

http_method() click to toggle source
# File lib/typhoid/request_builder.rb, line 19
def http_method
  request_options[:method] || :get
end
options() click to toggle source
# File lib/typhoid/request_builder.rb, line 15
def options
  symbolize_keys({ method: http_method }.merge(request_options.reject { |_,value| value.nil? }))
end
run() click to toggle source
# File lib/typhoid/request_builder.rb, line 23
def run
  klass.run(self)
end

Private Instance Methods

symbolize_key(key) click to toggle source
# File lib/typhoid/request_builder.rb, line 42
def symbolize_key(key)
  return key if key.is_a?(Symbol)
  key.to_s.to_sym
end
symbolize_keys(hash) click to toggle source

Ethon hates on hash with indifferent access for some reason

# File lib/typhoid/request_builder.rb, line 30
def symbolize_keys(hash)
  hash = hash.to_hash
  if hash.respond_to?(:symbolize_keys)
    hash.symbolize_keys
  else
    hash.inject({}) do |new_hash, (key, value)|
      new_hash[symbolize_key(key)] = value
      new_hash
    end
  end
end