Module: Airwallex::Util
- Defined in:
- lib/airwallex/util.rb
Class Method Summary collapse
- .deep_symbolize_keys(hash) ⇒ Object
- .format_date_time(value) ⇒ Object
- .generate_idempotency_key ⇒ Object
- .parse_date_time(value) ⇒ Object
- .symbolize_keys(hash) ⇒ Object
- .to_money(value) ⇒ Object
Class Method Details
.deep_symbolize_keys(hash) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/airwallex/util.rb', line 43 def deep_symbolize_keys(hash) return hash unless hash.is_a?(Hash) hash.each_with_object({}) do |(key, value), result| result[key.to_sym] = value.is_a?(Hash) ? deep_symbolize_keys(value) : value end end |
.format_date_time(value) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/airwallex/util.rb', line 15 def format_date_time(value) case value when Time, DateTime value.utc.iso8601 when Date value.to_time.utc.iso8601 when String value else raise ArgumentError, "Cannot format #{value.class} as ISO 8601" end end |
.generate_idempotency_key ⇒ Object
11 12 13 |
# File 'lib/airwallex/util.rb', line 11 def generate_idempotency_key SecureRandom.uuid end |
.parse_date_time(value) ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/airwallex/util.rb', line 28 def parse_date_time(value) return nil if value.nil? return value if value.is_a?(Time) Time.iso8601(value) rescue ArgumentError Time.parse(value) end |
.symbolize_keys(hash) ⇒ Object
37 38 39 40 41 |
# File 'lib/airwallex/util.rb', line 37 def symbolize_keys(hash) return hash unless hash.is_a?(Hash) hash.transform_keys(&:to_sym) end |
.to_money(value) ⇒ Object
51 52 53 54 55 56 |
# File 'lib/airwallex/util.rb', line 51 def to_money(value) return value if value.is_a?(BigDecimal) return BigDecimal("0") if value.nil? BigDecimal(value.to_s) end |