Sha256: e1539372f8c1498d06e55ca36a2da7ec2abbe8157b2cd99220438891017a06df

Contents?: true

Size: 601 Bytes

Versions: 10

Compression:

Stored size: 601 Bytes

Contents

module Kernel

  # Call parent class/module methods once bound to self.

  def send_as(klass, meth, *args, &blk)
    selfclass = Kernel.instance_method(:class).bind(self).call
    raise ArgumentError if ! selfclass.ancestors.include?(klass)
    klass.instance_method(meth).bind(self).call(*args, &blk)
  end

end



#  _____         _
# |_   _|__  ___| |_
#   | |/ _ \/ __| __|
#   | |  __/\__ \ |_
#   |_|\___||___/\__|
#
=begin test

  require 'test/unit'

  class TCKernel < Test::Unit::TestCase

    def test_send_as
      assert_equal( String, "A".send_as(Object, :class) )
    end

  end

=end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
facets-1.4.0 lib/facets/core/kernel/send_as.rb
facets-1.4.1 lib/facets/core/kernel/send_as.rb
facets-1.4.2 lib/facets/core/kernel/send_as.rb
facets-1.4.3 lib/facets/core/kernel/send_as.rb
facets-1.4.4 lib/facets/core/kernel/send_as.rb
facets-1.4.5 lib/facets/core/kernel/send_as.rb
facets-1.7.0 lib/facets/core/kernel/send_as.rb
facets-1.7.30 lib/facets/core/kernel/send_as.rb
facets-1.7.38 lib/facets/core/kernel/send_as.rb
facets-1.7.46 lib/facets/core/kernel/send_as.rb