Class Reference
In: lib/more/facets/reference.rb
Parent: Object

Reference

Reference provides a way to access object indirectly. This allows for the object itself to be changed on the fly.

  a = "HELLO"
  b = ref(a)
  puts b    #=> "HELLO"
  c = 10
  b.become(c)
  puts b    #=> "10"

Methods

Public Class methods

[Source]

# File lib/more/facets/reference.rb, line 50
  def self.new(obj)
    ref = allocate
    ref.become obj
    ref
  end

Public Instance methods

[Source]

# File lib/more/facets/reference.rb, line 66
  def __value__
    @ref
  end

[Source]

# File lib/more/facets/reference.rb, line 60
  def become(obj)
    old = @ref
    @ref = obj
    old
  end
instance_delegate()

Alias for #value

[Source]

# File lib/more/facets/reference.rb, line 56
  def method_missing(*args, &block)
    @ref.__send__(*args, &block)
  end

[Validate]