Module: NxtInit::InstanceMethods

Defined in:
lib/nxt_init.rb

Instance Method Summary collapse

Instance Method Details

#initialize(*args, **attrs) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
# File 'lib/nxt_init.rb', line 37

def initialize(*args, **attrs)
  option_keys = self.class.send(:attr_init_opts).map do |option|
    option.is_a?(Hash) ? option.keys.first : option
  end

  attr_init_opts = attrs.slice(*option_keys)
  other_options = attrs.slice!(*option_keys)
  # passing **{} is like calling super({}) which does not work when super does not except arguments
  initialize_attrs_from_options(**attr_init_opts)
  other_options.empty? ? super(*args) : super(*args, **other_options)
end