Sha256: e34f78b5197ebcd5fbf4b3d3ed34506d16046cf6a83807915c2f37970a3f13a2
Contents?: true
Size: 1.15 KB
Versions: 5
Compression:
Stored size: 1.15 KB
Contents
require "#{File.dirname(__FILE__)}/../helpers.rb" describe "Object#cache_method_missing" do before do class A; end end after do Object.instance_eval { remove_const(:A) if const_defined?(:A) } end it "defines the missing method" do A.module_eval do def method_missing(name, *args) cache_method_missing name, "'hi'", *args end end A.new.bar A.new.should.respond_to :bar end it "passes along the args" do A.module_eval do def method_missing(name, *args, &block) cache_method_missing name, "args.join('-')", *args end end A.new.bar(1, 2, 3).should == "1-2-3" end it "passes along the block" do A.module_eval do def method_missing(name, *args, &block) cache_method_missing name, "block.call", *args, &block end end A.new.bar { 'bye' }.should == 'bye' end end describe "Object#instance_exec" do before do @block = lambda { |guy| "Howdy, #{guy}!" } end it "works like instance_eval, but it takes args and gives them to the block" do instance_exec( "Steve", &@block ).should == "Howdy, Steve!" end end
Version data entries
5 entries across 5 versions & 2 rubygems
Version | Path |
---|---|
waves-edge-2009.03.10.13.14 | test/ext/object.rb |
waves-0.9.3 | test/ext/object.rb |
waves-0.9.2 | test/ext/object.rb |
waves-0.9.1 | test/ext/object.rb |
waves-0.9.0 | test/ext/object.rb |