class Rocket::Core::Function

Attributes

data_send[RW]
debug[RW]
method_send[RW]
resource_url[RW]
return_data[RW]
token[RW]

Public Class Methods

new(debug = false) click to toggle source
# File lib/rocket/core/function.rb, line 10
def initialize(debug = false)
  self.debug = debug
end

Public Instance Methods

debug?() click to toggle source
# File lib/rocket/core/function.rb, line 14
def debug?
  !!self.debug
end

Protected Instance Methods

curl_send() click to toggle source
# File lib/rocket/core/function.rb, line 68
def curl_send
  uri = "#{self.resource_url}#{self.method_send}"
  options = self.opts.merge(
    :body => self.data_send,
    :format => :json
  )

  curl_response = self.class.post uri, options

  raise curl_response.inspect if self.debug?

  self.return_data = curl_response

  true
end
json_array(json) click to toggle source
# File lib/rocket/core/function.rb, line 34
def json_array(json)
  Rocket::Response.new json, to_denormalize(json.parsed_response)
end
make_json(data) click to toggle source
# File lib/rocket/core/function.rb, line 26
def make_json(data)
  unless data.respond_to?(:to_json) && data.respond_to?(:as_json)
    raise RocketException.new 'Please provide a array data'
  end

  to_normalize(data.as_json).to_json
end
method_send=(method) click to toggle source
# File lib/rocket/core/function.rb, line 22
def method_send=(method)
  @method_send = "/#{method}"
end
opts() click to toggle source
# File lib/rocket/core/function.rb, line 54
def opts
  @opts ||= {}
  @opts[:headers] ||= {}

  @opts[:headers].merge!(
    {
      #"Content-Type" => "application/json",
      "token" => self.token
    }
  )

  @opts
end
prepare_sdk_checkout() click to toggle source
# File lib/rocket/core/function.rb, line 38
def prepare_sdk_checkout
  self.resource_url = Rocket.production_url
end
prepare_sdk_development_checkout() click to toggle source
# File lib/rocket/core/function.rb, line 46
def prepare_sdk_development_checkout
  self.resource_url = Rocket.development_url
end
prepare_sdk_sandbox_checkout() click to toggle source
# File lib/rocket/core/function.rb, line 42
def prepare_sdk_sandbox_checkout
  self.resource_url = Rocket.sandbox_url
end
send_request(to) click to toggle source
# File lib/rocket/core/function.rb, line 50
def send_request(to)
  true
end

Private Instance Methods

to_denormalize(data) click to toggle source
# File lib/rocket/core/function.rb, line 104
def to_denormalize(data)
  case data
  when Float then
    BigDecimal.new data.to_s
  when Hash then
    data.dup.inject({}) do |hash, (key, value)|
      hash["#{key}".underscore.to_sym] = to_denormalize(value)
      hash
    end
  when Array then
    data.collect do |value|
      to_denormalize(value)
    end
  else
    data
  end
end
to_normalize(data) click to toggle source
# File lib/rocket/core/function.rb, line 86
def to_normalize(data)
  case data
  when BigDecimal then
    data.to_f
  when Hash then
    data.dup.inject({}) do |hash, (key, value)|
      hash["#{key}".camelcase(:lower).to_sym] = to_normalize(value)
      hash
    end
  when Array then
    data.collect do |value|
      to_normalize(value)
    end
  else
    data
  end
end