Class: NRSER::Props::Storage::InstanceVariable
- Defined in:
- lib/nrser/props/storage/instance_variable.rb
Constant Summary collapse
- DEFAULT_VAR_NAME =
:@__NRSER_prop_values
Instance Attribute Summary collapse
-
#sub_storage ⇒ attr_type
readonly
TODO document ‘sub_storage` attribute.
-
#var_name ⇒ Symbol
readonly
TODO document ‘var_name` attribute.
Instance Method Summary collapse
- #get(instance, prop) ⇒ Object
- #immutable? ⇒ Boolean
- #init(instance, collection) ⇒ Object
- #init?(instance) ⇒ Boolean
-
#initialize(var_name: DEFAULT_VAR_NAME, sub_storage:) ⇒ InstanceVariable
constructor
A new instance of InstanceVariable.
- #put(instance, prop, value) ⇒ Object
Constructor Details
#initialize(var_name: DEFAULT_VAR_NAME, sub_storage:) ⇒ InstanceVariable
Returns a new instance of InstanceVariable.
33 34 35 36 37 |
# File 'lib/nrser/props/storage/instance_variable.rb', line 33 def initialize var_name: DEFAULT_VAR_NAME, sub_storage: @var_name = var_name.to_sym @sub_storage = sub_storage end |
Instance Attribute Details
#sub_storage ⇒ attr_type (readonly)
TODO document ‘sub_storage` attribute.
30 31 32 |
# File 'lib/nrser/props/storage/instance_variable.rb', line 30 def sub_storage @sub_storage end |
#var_name ⇒ Symbol (readonly)
TODO document ‘var_name` attribute.
23 24 25 |
# File 'lib/nrser/props/storage/instance_variable.rb', line 23 def var_name @var_name end |
Instance Method Details
#get(instance, prop) ⇒ Object
73 74 75 |
# File 'lib/nrser/props/storage/instance_variable.rb', line 73 def get instance, prop sub_storage.get instance.instance_variable_get( @var_name ), prop end |
#immutable? ⇒ Boolean
63 64 65 |
# File 'lib/nrser/props/storage/instance_variable.rb', line 63 def immutable? sub_storage.immutable? end |
#init(instance, collection) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/nrser/props/storage/instance_variable.rb', line 43 def init instance, collection if init? instance raise NRSER::ConflictError.new binding.erb <<~END Already initialized! Instance: <%= instance.pretty_inspect %> Collection: <%= collection.pretty_inspect %> END end instance.instance_variable_set @var_name, collection end |
#init?(instance) ⇒ Boolean
68 69 70 |
# File 'lib/nrser/props/storage/instance_variable.rb', line 68 def init? instance instance.instance_variable_defined? @var_name end |
#put(instance, prop, value) ⇒ Object
78 79 80 81 82 83 |
# File 'lib/nrser/props/storage/instance_variable.rb', line 78 def put instance, prop, value sub_storage.put \ instance.instance_variable_get( @var_name ), prop, value end |