Class: AdvisorsCommandClient::Models::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/advisors_command_client/models/base.rb

Direct Known Subclasses

Contact

Class Method Summary collapse

Class Method Details

.deep_underscore_params(val = {}) ⇒ Object

JSON comes back as SnakeCase. This will convert all hash keys to snake_case.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/advisors_command_client/models/base.rb', line 12

def self.deep_underscore_params(val = {})
  snake_caser = -> val {val.to_s.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').gsub(/([a-z\d])([A-Z])/,'\1_\2').tr("-", "_").downcase}

  case val
  when Array
    val.map { |v| deep_underscore_params(v) }
  when Hash
    val.keys.each do |k, v = val[k]|
      val.delete k
      val[snake_caser.call(k)] = deep_underscore_params(v)
    end
    params = val
  else
    val
  end

  return val
end

.load(hash) ⇒ Object



6
7
8
# File 'lib/advisors_command_client/models/base.rb', line 6

def self.load(hash)
  new(deep_underscore_params(hash))
end