BasicObject
for Ruby 1.8 -> 1.9 transition
# File lib/facets/core/facets/object/dup.rb, line 23 def clone? ; true ; end
Override this in a child class if it cannot be dup'ed.
obj1 = Object.new obj2 = obj1.dup! obj2.equal?(obj1) #=> false
CREDIT: Dan Kubb (extlib)
# File lib/facets/core/facets/object/dup.rb, line 9 def dup! dup end
Can you safely call dup on this object?
Returns false for nil, false, true, symbols, and numbers; true otherwise.
# File lib/facets/core/facets/object/dup.rb, line 22 def dup? ; true ; end
Get or set state of object. You can think of object_state as an in-code form of marshalling.
class StateExample attr_reader :a, :b def initialize(a,b) @a, @b = a, b end end obj = StateExample.new(1,2) obj.a #=> 1 obj.b #=> 2 obj.object_state #=> {:a=>1, :b=>2} obj.object_state(:a=>3, :b=>4) obj.a #=> 3 obj.b #=> 4
For most object's this is essentially the same as instance.to_h. But for data structures like Array and Hash it returns a snapshot of their contents, not the state of their instance variables.
# File lib/facets/core/facets/object/object_state.rb, line 28 def object_state(data=nil) if data instance_variables.each do |iv| name = iv.to_s.sub(/^[@]/, '').to_sym instance_variable_set(iv, data[name]) end else data = {} instance_variables.each do |iv| name = iv.to_s.sub(/^[@]/, '').to_sym data[name] = instance_variable_get(iv) end data end end
Replace state of object with the state of another object of the same class (or superclass).
class ReplaceExample attr_reader :a, :b def initialize(a,b) @a, @b = a, b end end obj1 = ReplaceExample.new(1,2) obj1.a #=> 1 obj1.b #=> 2 obj2 = ReplaceExample.new(3,4) obj2.a #=> 3 obj2.b #=> 4 obj1.replace(obj2) obj1.a #=> 3 obj1.b #=> 4
This is very similar to instance.update, but it is limited by the class of objects, in the same manner as Array#replace.
# File lib/facets/core/facets/object/replace.rb, line 27 def replace(source) raise ArgumentError, "not a #{self.class} -- #{source}" unless source.is_a?(self.class) instance_variables.each do |iv| instance_variable_set(iv, source.instance_variable_get(iv)) end end
# File lib/facets/core/facets/applique/file_helpers.rb, line 2 def temporary_directory @temporary_directory ||= 'tmp' end
Alternative name for dup!
# File lib/facets/core/facets/object/dup.rb, line 14 def try_dup dup! end
Generated with the Darkfish Rdoc Generator 2.