Class: Object

Inherits:
BasicObject
Defined in:
lib/ruby_peter_v/set_once.rb,
lib/ruby_peter_v/each_recursively.rb

Instance Method Summary collapse

Instance Method Details

#each_recursively(&block) ⇒ Object



3
4
5
6
7
8
9
10
# File 'lib/ruby_peter_v/each_recursively.rb', line 3

def each_recursively(&block)
  if self.respond_to?(:each)
    loop_over_collection(self, &block)
  else
    yield(self)
  end
  self
end

#set_once(attribute, value) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/ruby_peter_v/set_once.rb', line 5

def set_once(attribute, value)
  ivar_symbol = :"@#{attribute}"
  instance_value = instance_variable_get(ivar_symbol)
  if (instance_value && instance_value != value)
    raise(
      RubyPeterV::SetOnceError,
      "Value of #{attribute} was #{instance_value}, trying to set it to #{value}")
  end
  instance_variable_set(:"@#{attribute}", value)
end