module Paysafe::Refinements::SnakeCase
Public Instance Methods
to_snake_case(data = self)
click to toggle source
# File lib/paysafe/refinements/snake_case.rb, line 6 def to_snake_case(data = self) case data when Array data.map { |value| to_snake_case(value) } when Hash data.map { |key, value| [underscore_key(key), to_snake_case(value)] }.to_h else data end end
underscore(string)
click to toggle source
# File lib/paysafe/refinements/snake_case.rb, line 30 def underscore(string) @__memoize_underscore ||= {} return @__memoize_underscore[string] if @__memoize_underscore[string] @__memoize_underscore[string] = string.gsub(/::/, '/') .gsub(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2') .gsub(/([a-z\d])([A-Z])/, '\1_\2') .tr('-', '_') .downcase @__memoize_underscore[string] end
underscore_key(key)
click to toggle source
# File lib/paysafe/refinements/snake_case.rb, line 19 def underscore_key(key) case key when Symbol underscore(key.to_s).to_sym when String underscore(key).to_sym else key end end