class Monobank::Resources::Base
Attributes
attributes[R]
Public Class Methods
define_fields(attributes)
click to toggle source
# File lib/monobank/resources/base.rb, line 4 def self.define_fields(attributes) attributes.each do |attribute| define_method(attribute) { instance_variable_get("@attributes")[attribute] } end end
new(attributes)
click to toggle source
# File lib/monobank/resources/base.rb, line 10 def initialize(attributes) @attributes = {} snake_case_attributes = deep_snake_case(attributes) snake_case_attributes.each { |key, value| @attributes[method_name(key)] = value } end
Public Instance Methods
deep_snake_case(hash)
click to toggle source
# File lib/monobank/resources/base.rb, line 20 def deep_snake_case(hash) return hash unless hash.is_a?(Array) || hash.is_a?(Hash) hash.each_with_object({}) do |(key, value), object| object[method_name(key)] = if value.is_a? Hash deep_snake_case(value) elsif value.is_a? Array value.map { |element| deep_snake_case(element) } else value end end end
method_name(key)
click to toggle source
# File lib/monobank/resources/base.rb, line 16 def method_name(key) key.gsub(/(.)([A-Z])/,'\1_\2').downcase end