Sha256: 8d120679e64b0fef48fd59e4a5b14042916141a5517c7d1562b4d09aeb3fa32f

Contents?: true

Size: 810 Bytes

Versions: 1

Compression:

Stored size: 810 Bytes

Contents

require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

describe "Kernel.eval_or_yield" do
  before :each do
    @obj = double('obj')
  end
  
  it "should instance_eval when the block takes no params" do
    expect(@obj).to receive(:test_method).and_return('OK')
    eval_or_yield(@obj) {
      self.should_not == @obj
      self.test_method.should == 'OK'
    }
  end
  
  it "should yield when the block takes a param" do
    expect(@obj).to receive(:test_method).and_return('OK')
    eval_or_yield(@obj) { |o|
      self.should_not == @obj
      o.should == @obj
      lambda { self.test_method }.should raise_error(NoMethodError)
      o.test_method.should == 'OK'
    }
  end
  
  it "should return the object when no block is given" do
    eval_or_yield(@obj).should == @obj
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
confstruct-1.1.0 spec/confstruct/utils_spec.rb