Sha256: 524f4c8ba9f79633c49ad46d385c6436baa8160a8ff34c2a85fd5af50e32b75c
Contents?: true
Size: 1.16 KB
Versions: 4
Compression:
Stored size: 1.16 KB
Contents
# frozen_string_literal: true module Veriff class Parser < HTTParty::Parser SUPPORTED_FORMATS = { 'application/json' => :json }.freeze def self.formats SUPPORTED_FORMATS end protected def json deep_transform_keys(JSON.parse(body)) do |key| underscore(key).to_sym end end private # source: https://apidock.com/rails/v5.2.3/Hash/_deep_transform_keys_in_object def deep_transform_keys(object, &block) case object when Hash object.each_with_object({}) do |(key, value), result| result[yield(key)] = deep_transform_keys(value, &block) end when Array object.map { |e| deep_transform_keys(e, &block) } else object end end # source: https://github.com/rails/rails/blob/master/activesupport/lib/active_support/inflector/methods.rb#L91 def underscore(camel_cased_word) return camel_cased_word unless /[A-Z-]|::/.match?(camel_cased_word) word = camel_cased_word.to_s.gsub(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2') word.gsub!(/([a-z\d])([A-Z])/, '\1_\2') word.tr!('-', '_') word.downcase! word end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
veriff-0.2.2 | lib/veriff/parser.rb |
veriff-0.2.1 | lib/veriff/parser.rb |
veriff-0.2.0 | lib/veriff/parser.rb |
veriff-0.1.0 | lib/veriff/parser.rb |