class CircuitApi::Resource

Attributes

circuit_resource_type[R]

Public Class Methods

new(circuit_resource_type, attributes) click to toggle source
# File lib/circuit_api/resource.rb, line 5
def initialize(circuit_resource_type, attributes)
  @circuit_resource_type = circuit_resource_type
  attributes.each do |name, value|
    define_accessors(name)
    send("#{name}=".to_sym, value)
  end
end

Public Instance Methods

to_json(options = {}) click to toggle source
# File lib/circuit_api/resource.rb, line 13
def to_json(options = {})
  instance_variables.each_with_object({}) do |variable, result|
    result[variable.to_s.delete('@')] = instance_variable_get(variable)
  end
end

Private Instance Methods

define_accessors(name) click to toggle source
# File lib/circuit_api/resource.rb, line 21
def define_accessors(name)
  define_getter(name)
  define_setter(name)
end
define_getter(name) click to toggle source
# File lib/circuit_api/resource.rb, line 34
def define_getter(name)
  return if self.respond_to?(name.to_sym)

  self.class.send(:define_method, name.to_sym) do
    instance_variable_get("@#{name.to_s}")
  end
end
define_setter(name) click to toggle source
# File lib/circuit_api/resource.rb, line 26
def define_setter(name)
  return if self.respond_to?("#{name}=".to_sym)

  self.class.send(:define_method, "#{name}=".to_sym) do |value|
    instance_variable_set("@#{name.to_s}", value)
  end
end