Class: SweeperAPI::Resources::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/sweeper_api/resources/base.rb

Direct Known Subclasses

Response

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response) ⇒ Base

Returns a new instance of Base.



12
13
14
15
16
17
# File 'lib/sweeper_api/resources/base.rb', line 12

def initialize(response)
  response.each { |key, value| _attrs[key] = parse_attribute(value) }

  metaclass = (class << self; self; end)
  metaclass.send(:dynamic_accessor, *_attrs.keys)
end

Class Method Details

.dynamic_accessor(*attrs) ⇒ Object



2
3
4
5
6
7
8
9
10
# File 'lib/sweeper_api/resources/base.rb', line 2

def self.dynamic_accessor(*attrs)
  attrs.each do |attr|
    class_eval do
      define_method(attr) { _attrs[attr] }
      define_method("#{attr}?") { !!_attrs[attr] } # rubocop:disable Style/DoubleNegation
      define_method("#{attr}=") { |value| _attrs[attr] = value }
    end
  end
end