Sha256: 48f17e1d4ad8fe6f1197d42cce95a9a96361bc658f37f26b4e279ed7c7308bb2

Contents?: true

Size: 1.48 KB

Versions: 77

Compression:

Stored size: 1.48 KB

Contents

module KernelSpecs
  class Foo
    def bar
      'done'
    end

    alias :aka :bar

    def baz(*args) args end

    def foo(first, *rest) [first, *rest] end

    def buz(first = true) first end

    def self.bar
      'done'
    end
  end
end

describe "Kernel#send" do
  it "invokes the named public method" do
    KernelSpecs::Foo.new.send(:bar).should == 'done'
  end

  it "invokes the named alias of a public method" do
    KernelSpecs::Foo.new.send(:aka).should == 'done'
  end
end

describe "Kernel#send" do
  it "invokes the named method" do
    KernelSpecs::Foo.new.send(:bar).should == 'done'
  end

  it "invokes a class method if called on a class" do
    KernelSpecs::Foo.send(:bar).should == 'done'
  end

  it "succeeds if passed an arbitrary number of arguments as a splat parameter" do
    KernelSpecs::Foo.new.send(:baz).should == []
    KernelSpecs::Foo.new.send(:baz, :quux).should == [:quux]
    KernelSpecs::Foo.new.send(:baz, :quux, :foo).should == [:quux, :foo]
  end

  it "succeeds when passing 1 or more arguments as a required and a splat parameter" do
    KernelSpecs::Foo.new.send(:foo, :quux).should == [:quux]
    KernelSpecs::Foo.new.send(:foo, :quux, :bar).should == [:quux, :bar]
    KernelSpecs::Foo.new.send(:foo, :quux, :bar, :baz).should == [:quux, :bar, :baz]
  end

  it "succeeds when passing 0 arguments to a method with one parameter with a default" do
    KernelSpecs::Foo.new.send(:buz).should == true
    KernelSpecs::Foo.new.send(:buz, :arg).should == :arg
  end
end

Version data entries

77 entries across 77 versions & 3 rubygems

Version Path
opal-0.9.0.rc1 spec/opal/core/kernel/send_spec.rb
opal-0.9.0.beta2 spec/opal/core/kernel/send_spec.rb
opal-0.9.0.beta1 spec/opal/core/kernel/send_spec.rb
opal-0.8.1 spec/opal/core/kernel/send_spec.rb
opal-0.8.1.rc1 spec/opal/core/kernel/send_spec.rb
opal-wedge-0.9.0.dev spec/opal/core/kernel/send_spec.rb
opal-0.8.0 spec/opal/core/kernel/send_spec.rb
opal-0.8.0.rc3 spec/opal/core/kernel/send_spec.rb
opal-0.8.0.rc2 spec/opal/core/kernel/send_spec.rb
opal-0.8.0.rc1 spec/opal/core/kernel/send_spec.rb
opal-0.8.0.beta1 spec/opal/core/kernel/send_spec.rb
opal-0.7.2 spec/opal/core/kernel/send_spec.rb
opal-0.7.1 spec/opal/core/kernel/send_spec.rb
opal-0.7.0 spec/opal/core/kernel/send_spec.rb
opal-0.7.0.rc1 spec/opal/core/kernel/send_spec.rb
opal-0.7.0.beta3 spec/opal/core/kernel/send_spec.rb
opal-0.6.3 spec/opal/core/kernel/send_spec.rb
opal-0.7.0.beta2 spec/opal/core/kernel/send_spec.rb
opal-cj-0.7.0.beta2 spec/opal/core/kernel/send_spec.rb
opal-cj-0.7.0.beta1 spec/opal/core/kernel/send_spec.rb