Class: AttrChain::InstanceVariableAccessor

Inherits:
Object
  • Object
show all
Defined in:
lib/util/attr_chain.rb

Overview

Wrapper for Object::instance_variable_get, Object::instance_variable_set and Object::instance_variable_defined?

Instance Method Summary collapse

Instance Method Details

#defined?(object, name) ⇒ Boolean

Returns:

  • (Boolean)


218
219
220
# File 'lib/util/attr_chain.rb', line 218

def defined?(object, name)
  object.instance_variable_defined?(edit_name(name))
end

#edit_name(variable_name) ⇒ Object



201
202
203
# File 'lib/util/attr_chain.rb', line 201

def edit_name(variable_name)
  "@#{variable_name}".to_sym
end

#get(object, name) ⇒ Object



205
206
207
208
209
210
211
212
# File 'lib/util/attr_chain.rb', line 205

def get(object, name)
  n = edit_name(name)
  if object.instance_variable_defined?(n)
    object.instance_variable_get(n)
  else
    nil
  end
end

#set(object, name, value) ⇒ Object



214
215
216
# File 'lib/util/attr_chain.rb', line 214

def set(object, name, value)
  object.instance_variable_set(edit_name(name), value)
end