Method: Arsenicum::Formatter#parse_for_embedded_classes

Defined in:
lib/arsenicum/formatter.rb

#parse_for_embedded_classes(value) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/arsenicum/formatter.rb', line 79

def parse_for_embedded_classes(value)
  case value[:type]
    when TYPE_DATE
      Date.strptime(value[:value], DATE_FORMAT)
    when TYPE_DATETIME
      Time.strptime(value[:value], DATE_TIME_FORMAT)
    when TYPE_CLASS
      Module.const_get value[:value].to_sym
    when TYPE_ARRAY
      value[:values].map do |value|
        parse(value)
      end
    when TYPE_HASH
      value[:values].inject({}) do |h, key_value|
        (key, value) = key_value
        h[key.to_s.to_sym] = parse(value)
        h
      end
  end
end