Sha256: 0c7ef716ab15d3f41ef8be488bc2d4afd961a0abfa2122d78fecb36274183140

Contents?: true

Size: 1.03 KB

Versions: 83

Compression:

Stored size: 1.03 KB

Contents

describe :kernel_lambda, :shared => true do
  it "returns a Proc object" do
    send(@method) { true }.kind_of?(Proc).should == true
  end

  it "raises an ArgumentError when no block is given" do
    lambda { send(@method) }.should raise_error(ArgumentError)
  end

  it "raises an ArgumentError when given too many arguments" do
    lambda {
      send(@method) { |a, b| a + b }.call(1, 2, 5)
    }.should raise_error(ArgumentError)
  end

  it "raises an ArgumentError when given too few arguments" do
    lambda {
      send(@method) { |a, b| a + b }.call(1)
    }.should raise_error(ArgumentError)
  end

  it "returns from block into caller block" do
    # More info in the pickaxe book pg. 359
    def some_method(cmd)
      p = send(cmd) { return 99 }
      res = p.call
      "returned #{res}"
    end

    # Have to pass in the @method errors otherwise
    some_method(@method).should == "returned 99"

    def some_method2(&b) b end
    a_proc = send(@method) { return true }
    res = some_method2(&a_proc)

    res.call.should == true
  end
end

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
rhodes-3.1.1 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.1.1.beta spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.1.0 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.1.0.beta.5 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.1.0.beta.4 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.1.0.beta.3 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.1.0.beta.2 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.1.0.beta.1 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.0.2 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.0.2.beta.1 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.0.1 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.0.1.beta.8 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.0.1.beta.7 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.0.1.beta.6 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.0.1.beta.5 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.0.1.beta.4 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.0.1.beta.3 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.0.1.beta.2 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.0.0 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb
rhodes-3.0.0.beta.7 spec/framework_spec/app/spec/core/kernel/shared/lambda.rb