ruby_deep_clone 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/deep_clone.gemspec +1 -1
- data/ext/deep_clone/deep_clone.c +15 -10
- metadata +12 -20
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8484cb9b2193de9597046084cd08d0da04e011cb
|
4
|
+
data.tar.gz: 42b44ed0f9340cda04b3720afeb0c81f245860d6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3c1af9c76e96f9624df214ba55c4513a03b4f58cb23dc739488cac9904f4e961b1c963fcf3be2b9449e1a1c38be2788a7a3b36d687235d7f911c26c7925a02d0
|
7
|
+
data.tar.gz: 1aa4d4c22cf31a3f0beafef48d4972557d5aae0714635cb93a96cafbf4331da6e4326dd1d9e9192ed860a86d3cccb9bc5f6c6b92fd43e4d0837a46c587264a7f
|
data/deep_clone.gemspec
CHANGED
data/ext/deep_clone/deep_clone.c
CHANGED
@@ -99,20 +99,25 @@ static VALUE clone_object(VALUE object, VALUE tracker)
|
|
99
99
|
rb_hash_aset(tracker,id,new_obj);
|
100
100
|
break;
|
101
101
|
default:
|
102
|
-
|
102
|
+
if(rb_obj_is_kind_of(object,rb_cNumeric)){
|
103
|
+
new_obj = object;
|
104
|
+
rb_hash_aset(tracker,id,new_obj);
|
105
|
+
} else {
|
106
|
+
new_obj = rb_obj_clone(object);
|
103
107
|
|
104
|
-
|
105
|
-
|
108
|
+
// Unfreeze the new object
|
109
|
+
OBJ_UNFREEZE(new_obj);
|
106
110
|
|
107
|
-
|
108
|
-
|
111
|
+
rb_hash_aset(tracker,id,new_obj);
|
112
|
+
st_table *tbl = DC_ROBJECT_IV_INDEX_TBL(object);
|
109
113
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
+
if(tbl) {
|
115
|
+
struct dump_call_arg arg = {new_obj,tracker, object};
|
116
|
+
TABLE_FOREACH(tbl, clone_variable, (st_data_t)&arg);
|
117
|
+
}
|
114
118
|
|
115
|
-
|
119
|
+
if(OBJ_FROZEN(object)) OBJ_FREEZE(new_obj);
|
120
|
+
}
|
116
121
|
break;
|
117
122
|
}
|
118
123
|
ident--;
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_deep_clone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.5.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Matthias Balmer
|
@@ -16,49 +15,43 @@ dependencies:
|
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: rspec
|
18
17
|
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
18
|
requirements:
|
21
|
-
- - ~>
|
19
|
+
- - "~>"
|
22
20
|
- !ruby/object:Gem::Version
|
23
21
|
version: 2.13.0
|
24
22
|
type: :development
|
25
23
|
prerelease: false
|
26
24
|
version_requirements: !ruby/object:Gem::Requirement
|
27
|
-
none: false
|
28
25
|
requirements:
|
29
|
-
- - ~>
|
26
|
+
- - "~>"
|
30
27
|
- !ruby/object:Gem::Version
|
31
28
|
version: 2.13.0
|
32
29
|
- !ruby/object:Gem::Dependency
|
33
30
|
name: rake-compiler
|
34
31
|
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
32
|
requirements:
|
37
|
-
- - ~>
|
33
|
+
- - "~>"
|
38
34
|
- !ruby/object:Gem::Version
|
39
35
|
version: 0.8.3
|
40
36
|
type: :development
|
41
37
|
prerelease: false
|
42
38
|
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
39
|
requirements:
|
45
|
-
- - ~>
|
40
|
+
- - "~>"
|
46
41
|
- !ruby/object:Gem::Version
|
47
42
|
version: 0.8.3
|
48
43
|
- !ruby/object:Gem::Dependency
|
49
44
|
name: rake
|
50
45
|
requirement: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
46
|
requirements:
|
53
|
-
- - ~>
|
47
|
+
- - "~>"
|
54
48
|
- !ruby/object:Gem::Version
|
55
49
|
version: 10.0.4
|
56
50
|
type: :development
|
57
51
|
prerelease: false
|
58
52
|
version_requirements: !ruby/object:Gem::Requirement
|
59
|
-
none: false
|
60
53
|
requirements:
|
61
|
-
- - ~>
|
54
|
+
- - "~>"
|
62
55
|
- !ruby/object:Gem::Version
|
63
56
|
version: 10.0.4
|
64
57
|
description: Native implementation to create deep clones of Ruby objects
|
@@ -72,32 +65,31 @@ extensions:
|
|
72
65
|
extra_rdoc_files: []
|
73
66
|
files:
|
74
67
|
- deep_clone.gemspec
|
75
|
-
- lib/deep_clone.rb
|
76
68
|
- ext/deep_clone/deep_clone.c
|
77
69
|
- ext/deep_clone/deep_clone.h
|
78
70
|
- ext/deep_clone/extconf.rb
|
71
|
+
- lib/deep_clone.rb
|
79
72
|
homepage: https://github.com/balmma/ruby-deepclone
|
80
73
|
licenses: []
|
74
|
+
metadata: {}
|
81
75
|
post_install_message:
|
82
76
|
rdoc_options: []
|
83
77
|
require_paths:
|
84
78
|
- ext
|
85
79
|
- lib
|
86
80
|
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
81
|
requirements:
|
89
|
-
- -
|
82
|
+
- - ">="
|
90
83
|
- !ruby/object:Gem::Version
|
91
84
|
version: '0'
|
92
85
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
|
-
none: false
|
94
86
|
requirements:
|
95
|
-
- -
|
87
|
+
- - ">="
|
96
88
|
- !ruby/object:Gem::Version
|
97
89
|
version: '0'
|
98
90
|
requirements: []
|
99
91
|
rubyforge_project:
|
100
|
-
rubygems_version:
|
92
|
+
rubygems_version: 2.2.1
|
101
93
|
signing_key:
|
102
94
|
specification_version: 2
|
103
95
|
summary: Ruby native deep clone
|