class Cubscout::Object

the Object class is the base class for any object retrieved from the Helpscout API. it's attributes can be read either as they are returned (usually camel case) but also in snake case. @example

obj = Cubscout::Object.new("firstName" => "Joren")
puts obj.firstName # => "Joren"
puts obj.first_name # => "Joren"

Attributes

attributes[R]

Public Class Methods

new(attributes) click to toggle source
# File lib/cubscout/object.rb, line 14
def initialize(attributes)
  # Dirty deep_transform_keys to strings
  @attributes = JSON.parse(attributes.to_json)
end

Public Instance Methods

method_missing(method_name, *args, &block) click to toggle source
Calls superclass method
# File lib/cubscout/object.rb, line 19
def method_missing(method_name, *args, &block)
  key = camelize(method_name)
  return super unless @attributes.key?(key)

  @attributes[key]
end

Private Instance Methods

camelize(sym) click to toggle source
# File lib/cubscout/object.rb, line 28
def camelize(sym)
  parts = sym.to_s.split('_')
  parts[0] + parts[1..-1].map(&:capitalize).join
end