method

copy_instance_variables_from

Importance_2
v2.2.1 - Show latest stable - 0 notes - Class: Object
copy_instance_variables_from(object, exclude = []) public

Copies the instance variables of object into self.

Instance variable names in the exclude array are ignored. If object responds to protected_instance_variables the ones returned are also ignored. For example, Rails controllers implement that method.

In both cases strings and symbols are understood, and they have to include the at sign.

  class C
    def initialize(x, y, z)
      @x, @y, @z = x, y, z
    end

    def protected_instance_variables
      %w(@z)
    end
  end

  a = C.new(0, 1, 2)
  b = C.new(3, 4, 5)

  a.copy_instance_variables_from(b, [:@y])
  # a is now: @x = 3, @y = 1, @z = 2
Show source
Register or log in to add new notes.