deep_cloneable 3.0.0 → 3.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 634f26d61403e05935d1c2cf8b529f15affa2d7b1db9e3eb4d7aa194d2641ac6
4
- data.tar.gz: '089ad9bf666a3c7f1b1a934f507ac3c141b32b5a6f0d33b1e10ae371554cba0e'
3
+ metadata.gz: 2749ea92fe72a12b752f018602733db2b323419cd2888b7fda796953b15aaf2b
4
+ data.tar.gz: adb2ecc923a0d25ee51681577fc93b7ed11b6c294e84c38fddc99733ff48208c
5
5
  SHA512:
6
- metadata.gz: a75508666497109799f6131cf47787342c11c111bb5bd36171a8635e3ddc8204341339a075b2dcc8d3ac5dc8f986215ea0336ca886361515c920245a4ceac0a1
7
- data.tar.gz: 81622f2d0878386d76e499df0d27e58aaf4bbf042772d88ac8fe1a821f52c5f3bf0efc528f2721302e280ef5b7bd73527b4d1342244190aeb53e37872fd59953
6
+ metadata.gz: fad4e3914d636d48f3230869229a28a111fdab97d66469fb539fe34bd248f3b278559346a4517c3c5f43fa2664ea040763f6b5d442a7dd1be4e7e1db9a3a8017
7
+ data.tar.gz: 5b6a8a672b640178389d38e1fb13b8110f40ab9e9a2cffc0637f948323ea640e0f1508f672410538809ecc353cd2e90976a06ba9087ad25e2d3b3405a5c7a2e6
data/Appraisals CHANGED
@@ -1,52 +1,57 @@
1
- appraise '3.1' do
2
- gem 'activerecord', '~> 3.1.0'
3
- gem 'addressable', '~> 2.3.8'
4
- gem 'i18n', '~> 0.6.5'
5
- gem 'rdoc', '< 5', :group => :test
6
- end
1
+ # frozen_string_literal: true
7
2
 
8
3
  appraise '3.2' do
9
4
  gem 'activerecord', '~> 3.2.0'
10
- gem 'addressable', '~> 2.3.8'
11
5
  gem 'i18n', '~> 0.6.5'
12
- gem 'rdoc', '< 5', :group => :test
6
+ gem 'sqlite3', '~> 1.3.13'
13
7
  end
14
8
 
15
9
  appraise '4.0' do
16
10
  gem 'activerecord', '~> 4.0.0'
17
11
  gem 'i18n', '~> 0.6.5'
18
- gem 'psych', '< 3', :group => :test
19
- gem 'jeweler', '~> 2.1.1', :group => :test
12
+ gem 'sqlite3', '~> 1.3.13'
20
13
  end
21
14
 
22
15
  appraise '4.1' do
23
16
  gem 'activerecord', '~> 4.1.0'
24
17
  gem 'i18n', '~> 0.6.9'
25
- gem 'psych', '< 3', :group => :test
26
- gem 'jeweler', '~> 2.1.1', :group => :test
18
+ gem 'sqlite3', '~> 1.3.13'
27
19
  end
28
20
 
29
21
  appraise '4.2' do
30
22
  gem 'activerecord', '~> 4.2.3'
31
23
  gem 'i18n', '~> 0.7.0'
32
- gem 'psych', '< 3', :group => :test
33
- gem 'jeweler', '~> 2.1.1', :group => :test
24
+ gem 'sqlite3', '~> 1.3.13'
34
25
  end
35
26
 
36
27
  appraise '5.0' do
37
28
  gem 'activerecord', '~> 5.0.0'
38
29
  gem 'i18n', '~> 0.7.0'
30
+ gem 'sqlite3', '~> 1.3.13'
39
31
  end
40
32
 
41
33
  appraise '5.1' do
42
34
  gem 'activerecord', '~> 5.1.0'
43
35
  gem 'i18n', '~> 0.7.0'
36
+ gem 'sqlite3', '~> 1.3.13'
44
37
  end
45
38
 
46
39
  appraise '5.2' do
47
40
  gem 'activerecord', '~> 5.2.0'
41
+ gem 'i18n', '~> 0.7.0'
42
+ gem 'sqlite3', '~> 1.3.13'
48
43
  end
49
44
 
50
45
  appraise '6.0' do
51
- gem 'activerecord', '~> 6.0.0.beta3'
46
+ gem 'activerecord', '~> 6.0.0'
47
+ gem 'sqlite3', '~> 1.4.1'
48
+ end
49
+
50
+ appraise '7.0' do
51
+ gem 'activerecord', '~> 7.0.0'
52
+ gem 'sqlite3', '~> 1.4.1'
53
+ end
54
+
55
+ appraise '8.0' do
56
+ gem 'activerecord', '~> 8.0.0'
52
57
  end
data/CHANGELOG.md CHANGED
@@ -1,4 +1,5 @@
1
1
  # Changelog
2
+
2
3
  All notable changes to this project will be documented in this file.
3
4
 
4
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
@@ -6,53 +7,115 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
6
7
 
7
8
  ## [Unreleased]
8
9
 
10
+ ## [3.2.1] - 2024-11-20
11
+
12
+ ### Added
13
+
14
+ - Added Ruby 3.3.5 support
15
+ - Added Rails 8.0 support
16
+
17
+ ## [3.2.0] - 2021-12-28
18
+
19
+ ### Added
20
+
21
+ - Added GitHub Actions integration & badge
22
+ - Added Ruby 2.7.5 support
23
+ - Added Rails 7.0 support
24
+
25
+ ### Removed
26
+
27
+ - Removed Travis-ci integration
28
+ - Remove EOL rubies from CI (ruby 1.9-2.2)
29
+
30
+ ## [3.1.0] - 2021-02-17
31
+
32
+ ### Added
33
+
34
+ - Added a `preprocessor` option
35
+ - Added a `postprocessor` option
36
+
37
+ ### Fixed
38
+
39
+ - Ensure the initial options hash is never modified
40
+ - When using conditions in combination with array includes, ensure nested includes are not accidentally deleted
41
+
42
+ ### Removed
43
+
44
+ - Removed jeweler as a gem dependency
45
+
9
46
  ## [3.0.0] - 2019-08-18
47
+
10
48
  ### Added
49
+
11
50
  - Support for Ruby 2.6.3
12
51
  - Support for Ruby 2.5.5
13
52
  - Support for Rails 6.0
53
+
14
54
  ### Changed
55
+
15
56
  - When using conditions, return `nil` instead of `false` as return value when a condition fails
16
57
  - Refactored gem structure and include in AR using lazy load hooks
17
58
  - Skip validations on save by using module `DeepCloneable::SkipValidations` instead of a code patch
18
59
  - Namespace of `ActiveRecord::Base::DeepCloneable::AssociationNotFoundException` changed to `DeepCloneable::AssociationNotFoundException`
19
60
  - Process optional block after all other processing has been finished
61
+
20
62
  ### Fixed
63
+
21
64
  - Add the `validate` option to the list of passed dup options to ensure validations are never run on save
65
+
22
66
  ### Removed
67
+
23
68
  - Official support for ruby 1.8.7, as it is not supported by Travis CI anymore
24
69
  - Official support for ruby 1.9.2, as it is not supported by Travis CI anymore
25
70
 
26
71
  ## [2.4.0] - 2019-01-10
72
+
27
73
  ### Added
74
+
28
75
  - Support `has_one` and `has_one - through`
76
+
29
77
  ### Changed
78
+
30
79
  - Lint code via Rubocop
31
80
  - Refactor code to improve readability
32
81
  - Use HTTPS in the gemspec website URL
33
82
 
34
83
  ## [2.3.2] - 2018-04-11
84
+
35
85
  ### Added
86
+
36
87
  - Support for Ruby 2.4 and 2.5
37
88
  - Support for Rails 5.1 and 5.2
38
89
  - CHANGELOG.md
39
90
 
40
91
  ## [2.3.1] - 2017-10-03
92
+
41
93
  ### Added
94
+
42
95
  - Documentation on when the optional block is invoked, which is before attributes are excluded
96
+
43
97
  ### Fixed
98
+
44
99
  - Conditional includes for nested associations
45
100
 
46
101
  ## [2.3.0] - 2017-06-14
102
+
47
103
  ### Added
104
+
48
105
  - Support for skipping missing associations
106
+
49
107
  ### Fixed
108
+
50
109
  - Multikey hashes in include arrays
51
110
 
52
111
  ## [2.2.2] - 2016-10-10
112
+
53
113
  ### Added
114
+
54
115
  - Documentation on cloning associated Carrierwave files
116
+
55
117
  ### Changed
118
+
56
119
  - Use `inverse_of` when defined for finding the reverse association
57
120
  - Cache bundler in Travis
58
121
  - Use index operator for setting column defaults
@@ -60,130 +123,201 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
60
123
  - Bump rails 5.0 appraisal
61
124
 
62
125
  ## [2.2.1] - 2016-05-27
126
+
63
127
  ### Fixed
128
+
64
129
  - Properly set column defaults for attributes
65
130
  - Rails 5.0 compatibility
66
131
 
67
132
  ## [2.2.0] - 2016-01-11
133
+
68
134
  ### Added
135
+
69
136
  - Support for conditional cloning when using array inclusions
137
+
70
138
  ### Changed
139
+
71
140
  - Bump rails 4.2 appraisal to 4.2.3
72
141
 
73
142
  ## [2.1.0] - 2015-03-10
143
+
74
144
  ### Added
145
+
75
146
  - Support for conditional cloning
147
+
76
148
  ### Changed
149
+
77
150
  - Check the dictionary before cloning has_many through or habtm associations
78
151
  - Refactor methods to refer to `dup` instead of `clone`
79
152
 
80
153
  ## [2.0.2] - 2014-12-17
154
+
81
155
  ### Fixed
156
+
82
157
  - Broken activerecord dependency in gemspec
83
158
 
84
159
  ## [2.0.1] - 2014-12-17
160
+
85
161
  ### Fixed
162
+
86
163
  - Rails 4.2.0.rc3 compatibility
87
164
 
88
165
  ## [2.0.0] - 2014-06-26
166
+
89
167
  ### Removed
168
+
90
169
  - Override of `dup`
91
170
  - References to `dup`
171
+
92
172
  ### Fixed
173
+
93
174
  - Open-ended dependency warning
94
175
 
95
176
  ## [1.7.0] - 2014-06-25
177
+
96
178
  ### Deprecated
179
+
97
180
  - Deprecated `dup` in favor of `deep_clone`
98
181
 
99
182
  ## [1.6.1] - 2014-04-16
183
+
100
184
  ### Changed
185
+
101
186
  - Switched test suite to minitest
102
187
  - Update travis.yml with rails 4.1
188
+
103
189
  ### Fixed
190
+
104
191
  - Rails 4.1 compatibility
105
192
 
106
193
  ## [1.6.0] - 2013-11-02
194
+
107
195
  ### Added
196
+
108
197
  - `:only` option for whitelisting attributes
109
198
  - MIT license
110
199
 
111
200
  ## [1.5.5] - 2013-08-28
201
+
112
202
  ### Fixed
203
+
113
204
  - Fix activerecord gem dependency
114
205
 
115
206
  ## [1.5.4] - 2013-08-12
207
+
116
208
  ### Removed
209
+
117
210
  - Rails 3.0 support, as it was broken anyway
211
+
118
212
  ### Changed
213
+
119
214
  - Update travis.yml with rails 4.0
215
+
120
216
  ### Fixed
217
+
121
218
  - Appraisals should load the correct major version of rails
122
219
  - Exclude unsupported builds in Travis
123
220
 
124
221
  ## [1.5.3] - 2013-06-18
222
+
125
223
  ### Fixed
224
+
126
225
  - Fix `initialize_dup` error
127
226
 
128
227
  ## [1.5.2] - 2013-06-10
228
+
129
229
  ### Fixed
230
+
130
231
  - Properly support has_many through associations
131
232
  - Fix reverse association lookup for self-referential models
132
233
  - Travis.ci status image
133
234
 
134
235
  ## [1.5.1] - 2013-03-06
236
+
135
237
  ### Fixed
238
+
136
239
  - Ruby 2.0 compatibility
137
240
 
138
241
  ## [1.5.0] - 2013-02-27
242
+
139
243
  ### Added
244
+
140
245
  - `:validate` option to disable validations when saving a cloned object
246
+
141
247
  ### Fixed
248
+
142
249
  - Depend on activerecord instead of rails
143
250
 
144
251
  ## [1.4.1] - 2012-07-23
252
+
145
253
  ### Fixed
254
+
146
255
  - Don't save HABTM associations on clone
147
256
 
148
257
  ## [1.4.0] - 2012-04-02
258
+
149
259
  ### Added
260
+
150
261
  - Possibility to add a optional block
262
+
151
263
  ### Fixed
264
+
152
265
  - Ruby 1.8.7 compatibility for rails 3.1
153
266
 
154
267
  ## [1.3.1] - 2012-01-26
268
+
155
269
  ### Fixed
270
+
156
271
  - Rails 3.2 compatibility
157
272
 
158
273
  ## [1.2.4] - 2011-06-15
274
+
159
275
  ### Changed
276
+
160
277
  - Raise an exception when the reverse association is missing
278
+
161
279
  ### Fixed
280
+
162
281
  - Reset column value when cloning associations
163
282
 
164
283
  ## [1.2.3] - 2011-02-27
284
+
165
285
  ### Changed
286
+
166
287
  - Find and set the reverse association when cloning associations
167
288
 
168
289
  ## [1.2.2] - 2011-02-21
290
+
169
291
  ### Fixed
292
+
170
293
  - Use association reflection for fetching the primary key name
171
294
 
172
295
  ## [1.2.1] - 2011-02-07
296
+
173
297
  ### Fixed
298
+
174
299
  - Cloning for polymorphic associations
175
300
 
176
301
  ## [1.2.0] - 2010-10-20
302
+
177
303
  ### Added
304
+
178
305
  - `:except` option for excluding attributes
306
+
179
307
  ### Fixed
308
+
180
309
  - Set foreign keys properly
181
310
 
182
311
  ## 1.0.0 - 2010-10-18
312
+
183
313
  ### Fixed
314
+
184
315
  - Convert existing code to a gem
185
316
 
186
- [Unreleased]: https://github.com/moiristo/deep_cloneable/compare/v3.0.0...HEAD
317
+ [unreleased]: https://github.com/moiristo/deep_cloneable/compare/v3.2.1...HEAD
318
+ [3.2.1]: https://github.com/moiristo/deep_cloneable/compare/v3.2.0...v3.2.1
319
+ [3.2.0]: https://github.com/moiristo/deep_cloneable/compare/v3.1.0...v3.2.0
320
+ [3.1.0]: https://github.com/moiristo/deep_cloneable/compare/v3.0.0...v3.1.0
187
321
  [3.0.0]: https://github.com/moiristo/deep_cloneable/compare/v2.4.0...v3.0.0
188
322
  [2.4.0]: https://github.com/moiristo/deep_cloneable/compare/v2.3.2...v2.4.0
189
323
  [2.3.2]: https://github.com/moiristo/deep_cloneable/compare/v2.3.1...v2.3.2
data/Gemfile CHANGED
@@ -1,14 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'http://rubygems.org'
2
4
 
3
- gem 'activerecord', '>= 3.1.0', '< 7'
4
- gem 'git', '~> 1.2.9', :group => :test
5
- gem 'highline', '~> 1.6.0', :group => :test
6
- gem 'rack', '~> 1.6', :group => :test
7
- gem 'rake', '~> 10.4', :group => :test
5
+ gem 'activerecord', '>= 3.1.0', '< 9'
6
+ gem 'bundler', :group => :test
7
+ gem 'rake', '~> 12.3', :group => :test
8
8
 
9
9
  gem 'appraisal', :group => :test
10
- gem 'jeweler', :group => :test
11
10
  gem 'minitest', :group => :test
12
- gem 'nokogiri', '~> 1.5.0', :group => :test
13
- gem 'rdoc', '>= 2.4.2', '< 6', :group => :test
14
- gem 'sqlite3', :group => :test
11
+ gem 'sqlite3', '~> 2.2', :group => :test
data/Gemfile.lock CHANGED
@@ -1,91 +1,60 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activemodel (5.2.0)
5
- activesupport (= 5.2.0)
6
- activerecord (5.2.0)
7
- activemodel (= 5.2.0)
8
- activesupport (= 5.2.0)
9
- arel (>= 9.0)
10
- activesupport (5.2.0)
11
- concurrent-ruby (~> 1.0, >= 1.0.2)
12
- i18n (>= 0.7, < 2)
13
- minitest (~> 5.1)
14
- tzinfo (~> 1.1)
15
- addressable (2.4.0)
16
- appraisal (2.2.0)
4
+ activemodel (8.0.0)
5
+ activesupport (= 8.0.0)
6
+ activerecord (8.0.0)
7
+ activemodel (= 8.0.0)
8
+ activesupport (= 8.0.0)
9
+ timeout (>= 0.4.0)
10
+ activesupport (8.0.0)
11
+ base64
12
+ benchmark (>= 0.3)
13
+ bigdecimal
14
+ concurrent-ruby (~> 1.0, >= 1.3.1)
15
+ connection_pool (>= 2.2.5)
16
+ drb
17
+ i18n (>= 1.6, < 2)
18
+ logger (>= 1.4.2)
19
+ minitest (>= 5.1)
20
+ securerandom (>= 0.3)
21
+ tzinfo (~> 2.0, >= 2.0.5)
22
+ uri (>= 0.13.1)
23
+ appraisal (2.5.0)
17
24
  bundler
18
25
  rake
19
26
  thor (>= 0.14.0)
20
- arel (9.0.0)
21
- builder (3.2.3)
22
- concurrent-ruby (1.0.5)
23
- descendants_tracker (0.0.4)
24
- thread_safe (~> 0.3, >= 0.3.1)
25
- faraday (0.9.2)
26
- multipart-post (>= 1.2, < 3)
27
- git (1.2.9.1)
28
- github_api (0.16.0)
29
- addressable (~> 2.4.0)
30
- descendants_tracker (~> 0.0.4)
31
- faraday (~> 0.8, < 0.10)
32
- hashie (>= 3.4)
33
- mime-types (>= 1.16, < 3.0)
34
- oauth2 (~> 1.0)
35
- hashie (3.5.7)
36
- highline (1.6.21)
37
- i18n (1.0.0)
27
+ base64 (0.2.0)
28
+ benchmark (0.4.0)
29
+ bigdecimal (3.1.8)
30
+ concurrent-ruby (1.3.4)
31
+ connection_pool (2.4.1)
32
+ drb (2.2.1)
33
+ i18n (1.14.6)
38
34
  concurrent-ruby (~> 1.0)
39
- jeweler (2.3.9)
40
- builder
41
- bundler
42
- git (>= 1.2.5)
43
- github_api (~> 0.16.0)
44
- highline (>= 1.6.15)
45
- nokogiri (>= 1.5.10)
46
- psych
47
- rake
48
- rdoc
49
- semver2
50
- jwt (1.5.6)
51
- mime-types (2.99.3)
52
- minitest (5.11.3)
53
- multi_json (1.13.1)
54
- multi_xml (0.6.0)
55
- multipart-post (2.0.0)
56
- nokogiri (1.5.11)
57
- oauth2 (1.4.0)
58
- faraday (>= 0.8, < 0.13)
59
- jwt (~> 1.0)
60
- multi_json (~> 1.3)
61
- multi_xml (~> 0.5)
62
- rack (>= 1.2, < 3)
63
- psych (3.0.2)
64
- rack (1.6.9)
65
- rake (10.5.0)
66
- rdoc (5.1.0)
67
- semver2 (3.4.2)
68
- sqlite3 (1.3.13)
69
- thor (0.20.0)
70
- thread_safe (0.3.6)
71
- tzinfo (1.2.5)
72
- thread_safe (~> 0.1)
35
+ logger (1.6.1)
36
+ mini_portile2 (2.8.7)
37
+ minitest (5.25.1)
38
+ rake (12.3.3)
39
+ securerandom (0.3.2)
40
+ sqlite3 (2.2.0)
41
+ mini_portile2 (~> 2.8.0)
42
+ thor (1.3.2)
43
+ timeout (0.4.2)
44
+ tzinfo (2.0.6)
45
+ concurrent-ruby (~> 1.0)
46
+ uri (1.0.2)
73
47
 
74
48
  PLATFORMS
75
49
  ruby
76
50
 
77
51
  DEPENDENCIES
78
- activerecord (>= 3.1.0, < 7)
52
+ activerecord (>= 3.1.0, < 9)
79
53
  appraisal
80
- git (~> 1.2.9)
81
- highline (~> 1.6.0)
82
- jeweler
54
+ bundler
83
55
  minitest
84
- nokogiri (~> 1.5.0)
85
- rack (~> 1.6)
86
- rake (~> 10.4)
87
- rdoc (>= 2.4.2, < 6)
88
- sqlite3
56
+ rake (~> 12.3)
57
+ sqlite3 (~> 2.2)
89
58
 
90
59
  BUNDLED WITH
91
- 1.17.3
60
+ 2.5.20
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2019 Reinier de Lange
1
+ Copyright (c) 2024 Reinier de Lange
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -1,25 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubygems'
2
4
  require 'bundler/setup'
5
+ require 'bundler/gem_tasks'
3
6
  require 'appraisal'
4
-
5
- begin
6
- require 'jeweler'
7
- Jeweler::Tasks.new do |gem|
8
- gem.name = 'deep_cloneable'
9
- gem.summary = %(This gem gives every ActiveRecord::Base object the possibility to do a deep clone.)
10
- gem.description = %(Extends the functionality of ActiveRecord::Base#dup to perform a deep clone that includes user specified associations. )
11
- gem.email = 'rjdelange@icloud.com'
12
- gem.homepage = 'http://github.com/moiristo/deep_cloneable'
13
- gem.authors = ['Reinier de Lange']
14
- gem.license = 'MIT'
15
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
- end
17
- Jeweler::GemcutterTasks.new
18
- rescue LoadError
19
- puts 'Jeweler (or a dependency) not available. Install it with: gem install jeweler'
20
- end
21
-
22
7
  require 'rake/testtask'
8
+
23
9
  Rake::TestTask.new(:test) do |test|
24
10
  test.libs << 'lib' << 'test'
25
11
  test.pattern = 'test/**/test_*.rb'