Module: ActiveEvent::Support::AttrInitializer

Extended by:
ActiveSupport::Concern
Included in:
EventType, AttrSetter
Defined in:
lib/active_event/support/attr_initializer.rb

Overview

Allows to initialize attributes with a hash

example:

class RgbColor
  include ActiveEvent::AttrInitializer
  attributes :r, :g, :b
end
green = RgbColor.new r: 250, g: 20, b: 20

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#attributes_except(*args) ⇒ Object



30
31
32
# File 'lib/active_event/support/attr_initializer.rb', line 30

def attributes_except(*args)
  attributes.reject { |k,_| args.include? k }
end

#freezeObject



26
27
28
# File 'lib/active_event/support/attr_initializer.rb', line 26

def freeze
  attributes.freeze
end

#initialize(*args) ⇒ Object



19
20
21
22
23
24
# File 'lib/active_event/support/attr_initializer.rb', line 19

def initialize(*args)
  hash = (args.last.is_a?(Hash) ? args.pop : {})
  super
  check_attributes hash
  init_attributes hash
end

#to_hashObject



34
35
36
# File 'lib/active_event/support/attr_initializer.rb', line 34

def to_hash
  attributes.dup
end