Module: Moonclerk::Util

Defined in:
lib/moonclerk/util.rb

Class Method Summary collapse

Class Method Details

.convert_to_moonclerk_object(resp, class_name = nil) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# 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) ⇒ Object



23
24
25
26
27
28
29
30
31
# 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_classesObject



3
4
5
6
7
8
9
# File 'lib/moonclerk/util.rb', line 3

def self.object_classes
  @object_classes ||= {
    'customer' => Customer,
    'form' => Form,
    'payment' => Payment
  }
end

.symbolize_names(object) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 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