Sha256: 29287d2c2e9d07480aa6ce06843157ce4dba6735c3baaa0e75a75bad73692986
Contents?: true
Size: 867 Bytes
Versions: 1
Compression:
Stored size: 867 Bytes
Contents
# frozen_string_literal: true module ChartMogul module Utils class JSONParser class << self def parse(json_string) hash = JSON.parse(json_string, symbolize_names: true) HashSnakeCaser.new(hash).to_snake_keys end def typecast_custom_attributes(custom_attributes) return {} unless custom_attributes custom_attributes.each_with_object({}) do |(key, value), hash| hash[key] = opt_string_to_time(value) end end def opt_string_to_time(value) return value unless value.instance_of?(String) parse_timestamp(value) rescue ArgumentError value end def parse_timestamp(value) Time.iso8601(value) rescue ArgumentError Time.rfc2822(value) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
chartmogul-ruby-1.6.6 | lib/chartmogul/utils/json_parser.rb |