Class: ZipMoney::Util

Inherits:
Object
  • Object
show all
Defined in:
lib/zipMoney/util.rb

Class Method Summary collapse

Class Method Details

.json_parse(data) ⇒ Object

Converts Hash|Struct|OpenStruct objects to Hash

Parameters:

  • Json (data)

    String

Returns:

  • data



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/zipMoney/util.rb', line 36

def json_parse(data)
  begin
    data =  JSON.parse(data)
  rescue TypeError => e         
    if !data.is_a?(Hash) && !data.is_a?(Struct) && !data.is_a?(OpenStruct)
  raise ArgumentError, "Invalid params provided" 
    end
  rescue JSON::ParserError => e
    if !data.is_a?(Hash) && !data.is_a?(Struct) && !data.is_a?(OpenStruct)
  raise ArgumentError, "Invalid params provided" 
    end
  end
  data
end

.struct_to_hash(object) ⇒ Object

Converts Struct objects to Hash

Parameters:

  • Struct (object)

    Object

Returns:

  • Hash



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/zipMoney/util.rb', line 10

def struct_to_hash(object)
  hash = {}
  object.to_h.each  do |k,v|           

    if v.is_a?(Struct) 
      v = struct_to_hash(v)
      hash[k] = v unless v.empty?
    elsif v.is_a?(Array)
      a = Array.new
      v.each_with_index do  |k1,v1|  
        v2 = struct_to_hash(k1) 
        a[v1] = v2  unless v2.empty?
      end 
      hash[k] = a  if  a.length > 0
    else 
      hash[k] = v unless v.nil?
    end
  end
    hash
end