Sha256: d0429e39857b71c80cbf3786924b7355cc3b5b73764a95980b09b1bf2a822245

Contents?: true

Size: 1.1 KB

Versions: 83

Compression:

Stored size: 1.1 KB

Contents

require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/../../spec_helper'
require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/fixtures/classes'

describe "Kernel#clone" do
  before :each do
    ScratchPad.clear
    @obj = KernelSpecs::Duplicate.new 1, :a
  end

  it "calls #initialize_copy on the new instance" do
    clone = @obj.clone
    ScratchPad.recorded.should_not == @obj.object_id
    ScratchPad.recorded.should == clone.object_id
  end

  it "copies instance variables" do
    clone = @obj.clone
    clone.one.should == 1
    clone.two.should == :a
  end

  it "copies singleton methods" do
    def @obj.special() :the_one end
    clone = @obj.clone
    clone.special.should == :the_one
  end

  it "copies modules included in the singleton class" do
    class << @obj
      include KernelSpecs::DuplicateM
    end

    clone = @obj.clone
    clone.repr.should == "KernelSpecs::Duplicate"
  end

  it "copies constants defined in the singleton class" do
    class << @obj
      CLONE = :clone
    end

    clone = @obj.clone
    class << clone
      CLONE.should == :clone
    end
  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/clone_spec.rb
rhodes-3.1.1.beta spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.1.0 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.1.0.beta.5 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.1.0.beta.4 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.1.0.beta.3 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.1.0.beta.2 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.1.0.beta.1 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.0.2 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.0.2.beta.1 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.0.1 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.0.1.beta.8 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.0.1.beta.7 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.0.1.beta.6 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.0.1.beta.5 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.0.1.beta.4 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.0.1.beta.3 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.0.1.beta.2 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.0.0 spec/framework_spec/app/spec/core/kernel/clone_spec.rb
rhodes-3.0.0.beta.7 spec/framework_spec/app/spec/core/kernel/clone_spec.rb