Module: VSM::Meta::Support
- Defined in:
- lib/vsm/meta/support.rb
Constant Summary collapse
- CONFIG_IVAR =
:@__vsm_constructor_args
Class Method Summary collapse
- .copy_args(args) ⇒ Object
- .fetch_constructor_args(instance) ⇒ Object
- .record_constructor_args(instance, args) ⇒ Object
Class Method Details
.copy_args(args) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/vsm/meta/support.rb', line 20 def copy_args(args) return {} if args.nil? case args when Hash args.transform_values { copy_args(_1) } when Array args.map { copy_args(_1) } when Symbol, Numeric, NilClass, TrueClass, FalseClass args else args.dup rescue args end end |
.fetch_constructor_args(instance) ⇒ Object
16 17 18 |
# File 'lib/vsm/meta/support.rb', line 16 def fetch_constructor_args(instance) instance.instance_variable_get(CONFIG_IVAR) end |
.record_constructor_args(instance, args) ⇒ Object
10 11 12 13 14 |
# File 'lib/vsm/meta/support.rb', line 10 def record_constructor_args(instance, args) copied = copy_args(args) instance.instance_variable_set(CONFIG_IVAR, copied) instance end |