Module: Wardrobe::InstanceMethods

Defined in:
lib/wardrobe/instance_methods.rb

Instance Method Summary collapse

Instance Method Details

#_add_attribute(name, klass, **args, &blk) ⇒ Object



19
20
21
22
23
# File 'lib/wardrobe/instance_methods.rb', line 19

def _add_attribute(name, klass, **args, &blk)
  @_wardrobe_set_singleton = _attribute_store.add(
    name, klass, self.class, self.class.wardrobe_stores, **args, &blk
  )
end

#_attribute_storeObject



15
16
17
# File 'lib/wardrobe/instance_methods.rb', line 15

def _attribute_store
  _attribute_store_singleton || self.class.attribute_store
end

#_get_attribute_value(atr) ⇒ Object



29
30
31
# File 'lib/wardrobe/instance_methods.rb', line 29

def _get_attribute_value(atr)
  instance_variable_get(atr.ivar_name)
end

#_initializing?Boolean

Returns:



11
12
13
# File 'lib/wardrobe/instance_methods.rb', line 11

def _initializing?
  instance_variable_defined?(:@_initializing) && @_initializing
end

#_set_attribute_value(atr, value) ⇒ Object



25
26
27
# File 'lib/wardrobe/instance_methods.rb', line 25

def _set_attribute_value(atr, value)
  instance_variable_set(atr.ivar_name, value)
end

#initialize(**hash) ⇒ Object



5
6
7
8
9
# File 'lib/wardrobe/instance_methods.rb', line 5

def initialize(**hash)
  # raise "POC: More than one arg not supported..." if args.length > 1
  # kargs = args.first.merge(kargs) if args.any?
  _initialize { _wardrobe_init(hash) }
end