Sha256: f95c074ee4185d2190442e9e08258002be44e8a3ded7621b42b4a76a1d60fef1

Contents?: true

Size: 681 Bytes

Versions: 17

Compression:

Stored size: 681 Bytes

Contents

class Delegator < BasicObject
  def initialize(obj)
    __setobj__(obj)
  end

  def method_missing(m, *args, &block)
    target = __getobj__

    if target.respond_to?(m)
      target.__send__(m, *args, &block)
    else
      super(m, *args, &block)
    end
  end

  #
  # Checks for a method provided by this the delegate object by forwarding the
  # call through \_\_getobj\_\_.
  #
  def respond_to_missing?(m, include_private)
    __getobj__.respond_to?(m, include_private)
  end
end

class SimpleDelegator < Delegator
  def __getobj__
    @delegate_sd_obj
  end

  def __setobj__(obj)
    @delegate_sd_obj = obj
  end
end

def DelegateClass(superklass)
  SimpleDelegator
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
opal-1.5.1 stdlib/delegate.rb
opal-1.5.0 stdlib/delegate.rb
opal-1.5.0.rc1 stdlib/delegate.rb
opal-1.4.1 stdlib/delegate.rb
opal-1.4.0 stdlib/delegate.rb
opal-1.4.0.alpha1 stdlib/delegate.rb
opal-1.3.2 stdlib/delegate.rb
opal-1.3.1 stdlib/delegate.rb
opal-1.3.0 stdlib/delegate.rb
opal-1.3.0.rc1 stdlib/delegate.rb
opal-1.3.0.alpha1 stdlib/delegate.rb
opal-1.2.0 stdlib/delegate.rb
opal-1.2.0.beta1 stdlib/delegate.rb
opal-1.1.1 stdlib/delegate.rb
opal-1.1.1.rc1 stdlib/delegate.rb
opal-1.1.0 stdlib/delegate.rb
opal-1.1.0.rc1 stdlib/delegate.rb