class Perpetuity::Duplicator

Attributes

object[R]

Public Class Methods

new(object) click to toggle source
# File lib/perpetuity/duplicator.rb, line 4
def initialize object
  if object.is_a? Array
    @object = object.map { |i| Duplicator.new(i).object }
  else
    @object = object.dup rescue object
  end
  @object.instance_variables.each do |ivar|
    duplicate_attribute ivar
  end
end

Public Instance Methods

attribute(ivar) click to toggle source
# File lib/perpetuity/duplicator.rb, line 15
def attribute ivar
  object.instance_variable_get ivar
end
duplicate_attribute(ivar) click to toggle source
# File lib/perpetuity/duplicator.rb, line 23
def duplicate_attribute ivar
  set_attribute ivar, Duplicator.new(attribute(ivar)).object
end
set_attribute(ivar, value) click to toggle source
# File lib/perpetuity/duplicator.rb, line 19
def set_attribute ivar, value
  object.instance_variable_set ivar, value
end