class NRSER::Props::Storage::InstanceVariable

@todo document NRSER::Props::Storage::Key module.

Constants

DEFAULT_VAR_NAME

Attributes

sub_storage[R]

TODO document `sub_storage` attribute.

@return [attr_type]

var_name[R]

TODO document `var_name` attribute.

@return [Symbol]

Public Class Methods

new(var_name: DEFAULT_VAR_NAME, sub_storage: @var_name = var_name.to_sym) click to toggle source
# 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

Public Instance Methods

get(instance, prop) click to toggle source
# 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?() click to toggle source
# File lib/nrser/props/storage/instance_variable.rb, line 63
def immutable?
  sub_storage.immutable?
end
init(instance, collection) click to toggle source

Instance Methods

# 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) click to toggle source
# File lib/nrser/props/storage/instance_variable.rb, line 68
def init? instance
  instance.instance_variable_defined? @var_name
end
put(instance, prop, value) click to toggle source
# 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