module Moonclerk::Util

Public Class Methods

convert_to_moonclerk_object(resp, class_name = nil) click to toggle source
# File lib/moonclerk/util.rb, line 11
def self.convert_to_moonclerk_object(resp, class_name = nil)
  case resp
  when Array
    resp.map { |i| convert_to_moonclerk_object(i, class_name) }
  when Hash
    # Try converting to a known object class.  If none available, fall back to generic MoonclerkObject
    object_classes.fetch(class_name, MoonclerkObject).construct_from(resp)
  else
    resp
  end
end
normalize_id(id) click to toggle source
# File lib/moonclerk/util.rb, line 23
def self.normalize_id(id)
  if id.kind_of?(Hash) # overloaded id
    params_hash = id.dup
    id = params_hash.delete(:id)
  else
    params_hash = {}
  end
  [id, params_hash]
end
object_classes() click to toggle source
# File lib/moonclerk/util.rb, line 3
def self.object_classes
  @object_classes ||= {
    'customer' => Customer,
    'form' => Form,
    'payment' => Payment
  }
end
symbolize_names(object) click to toggle source
# File lib/moonclerk/util.rb, line 33
def self.symbolize_names(object)
  case object
  when Hash
    new_hash = {}
    object.each do |key, value|
      key = (key.to_sym rescue key) || key
      new_hash[key] = symbolize_names(value)
    end
    new_hash
  when Array
    object.map { |value| symbolize_names(value) }
  else
    object
  end
end