Class: ZipMoney::Util
- Inherits:
-
Object
- Object
- ZipMoney::Util
- Defined in:
- lib/zipMoney/util.rb
Class Method Summary collapse
-
.json_parse(data) ⇒ Object
Converts Hash|Struct|OpenStruct objects to Hash.
-
.struct_to_hash(object) ⇒ Object
Converts Struct objects to Hash.
Class Method Details
.json_parse(data) ⇒ Object
Converts Hash|Struct|OpenStruct objects to Hash
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
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 |