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

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