Sha256: 4d60b8af12500c26b08cae5ce3e79af7659e1cd575161ba61000827af84efe0b
Contents?: true
Size: 1.13 KB
Versions: 83
Compression:
Stored size: 1.13 KB
Contents
require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/../../spec_helper' require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/fixtures/classes' describe "Kernel#dup" do before :each do ScratchPad.clear @obj = KernelSpecs::Duplicate.new 1, :a end it "calls #initialize_copy on the new instance" do dup = @obj.dup ScratchPad.recorded.should_not == @obj.object_id ScratchPad.recorded.should == dup.object_id end it "copies instance variables" do dup = @obj.dup dup.one.should == 1 dup.two.should == :a end it "does not copy singleton methods" do def @obj.special() :the_one end dup = @obj.dup lambda { dup.special }.should raise_error(NameError) end it "does not copy modules included in the singleton class" do class << @obj include KernelSpecs::DuplicateM end dup = @obj.dup lambda { dup.repr }.should raise_error(NameError) end it "does not copy constants defined in the singleton class" do class << @obj CLONE = :clone end dup = @obj.dup lambda { class << dup; CLONE; end }.should raise_error(NameError) end end
Version data entries
83 entries across 83 versions & 1 rubygems