class Object

From: blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/43424

Public Instance Methods

D(k) click to toggle source

Alias for D.[]

@see D.[]

@example

D.define 'k1=v1'
D.define 'k2=v2'
D :k1 #=> "v1"
D:k2  #=> "v2"
# File lib/rub/d.rb, line 250
def D(k)
        D[k]
end
deep_clone() click to toggle source

Recursively clone an object.

# File lib/rub/r/tool.rb, line 72
def deep_clone
  return @deep_cloning_obj if @deep_cloning
  @deep_cloning_obj = clone
  @deep_cloning_obj.instance_variables.each do |var|
    val = @deep_cloning_obj.instance_variable_get(var)
    begin
      @deep_cloning = true
      val = val.deep_clone
    rescue TypeError
      next
    ensure
      @deep_cloning = false
    end
    @deep_cloning_obj.instance_variable_set(var, val)
  end
  deep_cloning_obj = @deep_cloning_obj
  @deep_cloning_obj = nil
  deep_cloning_obj
end