Sha256: 60eaaab00a61f97bff7526cc8b37952e27a49d3ebbb8e8a4936d97f4f4e858ce

Contents?: true

Size: 630 Bytes

Versions: 9

Compression:

Stored size: 630 Bytes

Contents

require "core/spec_helper"

describe 'deep_clone' do
  it "basic" do
    hash, array = {}, ['value']
    hash['key'] = array

    hash2 = hash.deep_clone
    array2 = hash2['key']

    hash2.should == hash
    hash2.object_id.should_not == hash.object_id

    array2.should == array
    array2.object_id.should_not == array.object_id
  end

  it do
    class Metadata
      attr_accessor :registry

      def initialize
        @registry = {}
      end
    end

    m = Metadata.new
    m.registry[:a] = 1

    m2 = m.deep_clone
    m2.registry.should include(:a)
    m2.registry[:b] = 2

    m.registry.should == {a: 1}
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ruby_ext-0.5.9 spec/core/deep_clone_spec.rb
ruby_ext-0.5.8 spec/core/deep_clone_spec.rb
ruby_ext-0.5.7 spec/core/deep_clone_spec.rb
ruby_ext-0.5.6 spec/core/deep_clone_spec.rb
ruby_ext-0.5.5 spec/core/deep_clone_spec.rb
ruby_ext-0.5.4 spec/core/deep_clone_spec.rb
ruby_ext-0.5.3 spec/core/deep_clone_spec.rb
ruby_ext-0.5.2 spec/core/deep_clone_spec.rb
ruby_ext-0.5.1 spec/core/deep_clone_spec.rb