Class: Strict::Attributes::GeneratedMethods

Inherits:
Module
  • Object
show all
Defined in:
lib/strict/attributes/generated_methods.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(configuration, writable:, target:, declared_attributes:) ⇒ GeneratedMethods

Returns a new instance of GeneratedMethods.



44
45
46
47
48
49
50
51
52
# File 'lib/strict/attributes/generated_methods.rb', line 44

def initialize(configuration, writable:, target:, declared_attributes:)
  super()

  validate_collisions!(target, declared_attributes, writable: writable)
  configuration.each do |attribute|
    define_reader(attribute)
    define_writer(attribute) if writable
  end
end

Class Method Details

.install_on(target, writable:) ⇒ Object



11
12
13
14
15
16
# File 'lib/strict/attributes/generated_methods.rb', line 11

def install_on(target, writable:)
  installation = ->(receiver, &definition) { install_attributes_on(receiver, writable, &definition) }
  target.define_singleton_method(:attributes) do |&definition|
    installation.call(self, &definition)
  end
end