darthjee-core_ext 1.7.4 → 2.0.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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +7 -1
  3. data/.gitignore +2 -0
  4. data/.reek.yml +3 -0
  5. data/ARRAY_README.md +72 -15
  6. data/CLASS_README.md +154 -0
  7. data/DATE_README.md +19 -9
  8. data/Dockerfile +2 -5
  9. data/ENUMERABLE_README.md +154 -4
  10. data/HASH_README.md +276 -135
  11. data/MATH_README.md +14 -10
  12. data/OBJECT_README.md +18 -35
  13. data/README.md +8 -4
  14. data/Rakefile +1 -0
  15. data/SYMBOL_README.md +13 -18
  16. data/config/rubycritc.rb +12 -0
  17. data/config/yardstick.yml +45 -3
  18. data/core_ext.gemspec +10 -8
  19. data/docker-compose.yml +15 -7
  20. data/lib/darthjee/core_ext/array.rb +17 -12
  21. data/lib/darthjee/core_ext/array/hash_builder.rb +20 -4
  22. data/lib/darthjee/core_ext/class.rb +28 -10
  23. data/lib/darthjee/core_ext/date.rb +1 -0
  24. data/lib/darthjee/core_ext/enumerable.rb +67 -30
  25. data/lib/darthjee/core_ext/hash.rb +4 -2
  26. data/lib/darthjee/core_ext/hash/cameliazable.rb +39 -8
  27. data/lib/darthjee/core_ext/hash/chain_fetcher.rb +17 -1
  28. data/lib/darthjee/core_ext/hash/changeable.rb +88 -0
  29. data/lib/darthjee/core_ext/hash/deep_hash_constructor.rb +127 -63
  30. data/lib/darthjee/core_ext/hash/deep_hash_constructor/setter.rb +112 -0
  31. data/lib/darthjee/core_ext/hash/key_changeable.rb +126 -54
  32. data/lib/darthjee/core_ext/hash/key_changer.rb +140 -40
  33. data/lib/darthjee/core_ext/hash/keys_sorter.rb +42 -6
  34. data/lib/darthjee/core_ext/hash/squasher.rb +131 -18
  35. data/lib/darthjee/core_ext/hash/transformable.rb +133 -41
  36. data/lib/darthjee/core_ext/hash/transposeable.rb +37 -8
  37. data/lib/darthjee/core_ext/hash/value_changer.rb +76 -36
  38. data/lib/darthjee/core_ext/math.rb +37 -6
  39. data/lib/darthjee/core_ext/numeric.rb +10 -0
  40. data/lib/darthjee/core_ext/object.rb +29 -0
  41. data/lib/darthjee/core_ext/symbol.rb +22 -2
  42. data/lib/darthjee/core_ext/version.rb +1 -1
  43. data/scripts/check_readme.sh +6 -0
  44. data/scripts/rubycritic.sh +10 -0
  45. data/spec/integration/readme/array_spec.rb +96 -0
  46. data/spec/integration/readme/class_spec.rb +123 -0
  47. data/spec/integration/readme/date_spec.rb +20 -0
  48. data/spec/integration/readme/enumerable_spec.rb +87 -0
  49. data/spec/integration/readme/hash_spec.rb +391 -0
  50. data/spec/integration/readme/math_spec.rb +31 -0
  51. data/spec/integration/readme/object_spec.rb +49 -0
  52. data/spec/integration/readme/symbol_spec.rb +29 -0
  53. data/spec/integration/yard/darthjee/core_ext/enumerable_spec.rb +24 -4
  54. data/spec/integration/yard/darthjee/core_ext/hash/cameliazable_spec.rb +11 -0
  55. data/spec/integration/yard/darthjee/core_ext/hash/changeable_spec.rb +68 -0
  56. data/spec/integration/yard/darthjee/core_ext/hash/deep_hash_constructor/setter_spec.rb +34 -0
  57. data/spec/integration/yard/darthjee/core_ext/hash/deep_hash_constructor_spec.rb +65 -0
  58. data/spec/integration/yard/darthjee/core_ext/hash/key_changeable_spec.rb +8 -0
  59. data/spec/integration/yard/darthjee/core_ext/hash/key_changer_spec.rb +59 -0
  60. data/spec/integration/yard/darthjee/core_ext/hash/keys_sorter_spec.rb +25 -0
  61. data/spec/integration/yard/darthjee/core_ext/hash/squasher_spec.rb +60 -0
  62. data/spec/integration/yard/darthjee/core_ext/hash/transformable_spec.rb +66 -36
  63. data/spec/integration/yard/darthjee/core_ext/hash/transposeable_spec.rb +35 -0
  64. data/spec/integration/yard/darthjee/core_ext/hash_spec.rb +13 -2
  65. data/spec/integration/yard/darthjee/core_ext/math_spec.rb +28 -0
  66. data/spec/integration/yard/darthjee/core_ext/numeric_spec.rb +11 -0
  67. data/spec/integration/yard/darthjee/core_ext/object_spec.rb +47 -0
  68. data/spec/integration/yard/darthjee/core_ext/symbol_spec.rb +17 -0
  69. data/spec/lib/darthjee/core_ext/hash/deep_hash_constructor/setter_spec.rb +64 -0
  70. data/spec/lib/darthjee/core_ext/hash/deep_hash_constructor_spec.rb +16 -156
  71. data/spec/lib/darthjee/core_ext/hash/keys_sorter_spec.rb +5 -4
  72. data/spec/lib/darthjee/core_ext/hash/squasher_spec.rb +8 -2
  73. data/spec/lib/darthjee/core_ext/hash/value_changer_spec.rb +4 -12
  74. data/spec/lib/hash_spec.rb +92 -146
  75. data/spec/lib/object_spec.rb +32 -0
  76. data/spec/support/models/client.rb +22 -0
  77. data/spec/support/shared_examples/hash/deep_hash.rb +166 -0
  78. data/spec/support/shared_examples/hash/hash_squasher.rb +54 -9
  79. data/spec/support/shared_examples/hash/keys_sorter.rb +266 -6
  80. metadata +70 -8
  81. data/lib/darthjee/core_ext/hash/to_hash_mapper.rb +0 -25
  82. data/spec/lib/darthjee/core_ext/hash/to_hash_mapper_spec.rb +0 -11
@@ -2,22 +2,67 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- shared_examples 'a class that has a method to squash a hash' do
6
- describe '#squash' do
7
- let(:hash) { { a: { b: 1, c: { d: 2 } } } }
5
+ shared_examples 'a method to squash a hash' do |joiner = '.'|
6
+ let(:hash) { { a: { b: 1, c: { d: 2 } } } }
7
+
8
+ context 'with hash values' do
9
+ let(:key1) { %w[a b].join(joiner) }
10
+ let(:key2) { %w[a c d].join(joiner) }
8
11
 
9
12
  it 'flattens the hash' do
10
- expect(squashed).to eq('a.b' => 1, 'a.c.d' => 2)
13
+ expect(squashed).to eq(key1 => 1, key2 => 2)
11
14
  end
12
15
 
13
16
  it { expect { hash.squash }.not_to(change { hash }) }
17
+ end
14
18
 
15
- context 'with array value' do
16
- let(:hash) { { a: { b: [1, { x: 3, y: { z: 4 } }] } } }
19
+ context 'with simple array value' do
20
+ let(:hash) do
21
+ {
22
+ 'person' => %w[John Wick]
23
+ }
24
+ end
25
+
26
+ it 'squash also hash' do
27
+ expect(squashed).to eq(
28
+ 'person[0]' => 'John',
29
+ 'person[1]' => 'Wick'
30
+ )
31
+ end
32
+ end
33
+
34
+ context 'with array containing hashes' do
35
+ let(:hash) { { a: { b: [1, { x: 3, y: { z: 4 } }] } } }
36
+ let(:key) { %w[a b].join(joiner) }
37
+
38
+ let(:expected) do
39
+ {
40
+ "#{key}[0]" => 1,
41
+ "#{key}[1]#{joiner}x" => 3,
42
+ "#{key}[1]#{joiner}y#{joiner}z" => 4
43
+ }
44
+ end
17
45
 
18
- it 'flattens the hash' do
19
- expect(squashed).to eq('a.b' => [1, { x: 3, y: { z: 4 } }])
20
- end
46
+ it 'flattens the hash' do
47
+ expect(squashed).to eq(expected)
48
+ end
49
+ end
50
+
51
+ context 'with array containing arrays' do
52
+ let(:hash) { { a: { b: [[11, 12], [21, 22]] } } }
53
+ let(:key) { %w[a b].join(joiner) }
54
+
55
+ let(:expected) do
56
+ {
57
+ "#{key}[0][0]" => 11,
58
+ "#{key}[0][1]" => 12,
59
+ "#{key}[1][0]" => 21,
60
+ "#{key}[1][1]" => 22
61
+ }
62
+ end
63
+
64
+ it 'flattens the hash' do
65
+ expect(squashed).to eq(expected)
21
66
  end
22
67
  end
23
68
  end
@@ -10,6 +10,10 @@ shared_examples 'a class with a keys sort method' do
10
10
  it 'sorts keys as symbols' do
11
11
  expect(result).to eq(a: 2, b: 1)
12
12
  end
13
+
14
+ it 'sorts keys' do
15
+ expect(result.keys).to eq(%i[a b])
16
+ end
13
17
  end
14
18
 
15
19
  context 'when keys are strings' do
@@ -18,6 +22,10 @@ shared_examples 'a class with a keys sort method' do
18
22
  it 'sorts keys as string' do
19
23
  expect(result).to eq('a' => 2, 'b' => 1)
20
24
  end
25
+
26
+ it 'sorts keys' do
27
+ expect(result.keys).to eq(%w[a b])
28
+ end
21
29
  end
22
30
 
23
31
  context 'when there is a nested hash' do
@@ -27,6 +35,14 @@ shared_examples 'a class with a keys sort method' do
27
35
  it 'sorts keys recursively' do
28
36
  expect(result).to eq(a: { c: 4, d: 3 }, b: 1)
29
37
  end
38
+
39
+ it 'sorts keys' do
40
+ expect(result.keys).to eq(%i[a b])
41
+ end
42
+
43
+ it 'sorts inner keys' do
44
+ expect(result[:a].keys).to eq(%i[c d])
45
+ end
30
46
  end
31
47
 
32
48
  context 'when recursive option is given' do
@@ -35,6 +51,14 @@ shared_examples 'a class with a keys sort method' do
35
51
  it 'sorts keys recursively when argumen is passed' do
36
52
  expect(result).to eq(a: { c: 4, d: 3 }, b: 1)
37
53
  end
54
+
55
+ it 'sorts keys' do
56
+ expect(result.keys).to eq(%i[a b])
57
+ end
58
+
59
+ it 'sorts inner keys' do
60
+ expect(result[:a].keys).to eq(%i[c d])
61
+ end
38
62
  end
39
63
 
40
64
  context 'when no recursive option is given' do
@@ -43,24 +67,260 @@ shared_examples 'a class with a keys sort method' do
43
67
  it 'does not sorts keys recursively when argumen is passed' do
44
68
  expect(result).to eq(a: { d: 3, c: 4 }, b: 1)
45
69
  end
70
+
71
+ it 'sorts keys' do
72
+ expect(result.keys).to eq(%i[a b])
73
+ end
74
+
75
+ it 'does not sort inner keys' do
76
+ expect(result[:a].keys).to eq(%i[d c])
77
+ end
78
+
79
+ it 'does not change inner hash' do
80
+ expect { result }.not_to change(hash[:a], :keys)
81
+ end
46
82
  end
47
83
  end
48
84
 
49
85
  context 'when it is deep nestled' do
50
- let(:hash) { { b: 1, a: { d: 2, c: { e: 3, f: 4 } } } }
86
+ let(:hash) { { b: 1, a: { d: 2, c: { f: 3, e: 4 } } } }
51
87
 
52
88
  it 'sort recursevely on many levels' do
53
- expected = { a: { c: { f: 4, e: 3 }, d: 2 }, b: 1 }
54
- expect(hash.sort_keys(recursive: true)).to eq(expected)
89
+ expected = { a: { c: { f: 3, e: 4 }, d: 2 }, b: 1 }
90
+ expect(result).to eq(expected)
91
+ end
92
+
93
+ it 'sorts keys' do
94
+ expect(result.keys).to eq(%i[a b])
95
+ end
96
+
97
+ it 'sorts inner keys' do
98
+ expect(result[:a].keys).to eq(%i[c d])
99
+ end
100
+
101
+ it 'sorts deeper inner keys' do
102
+ expect(result[:a][:c].keys).to eq(%i[e f])
55
103
  end
56
104
  end
57
105
 
58
106
  context 'when it has a nestled array' do
59
- let(:hash) { { b: 1, a: { d: 2, c: [{ e: 3, f: 4 }] } } }
107
+ let(:hash) { { b: 1, a: { d: 2, c: [{ f: 3, e: 4 }] } } }
60
108
 
61
109
  it 'applies to arrays as well' do
62
- expected = { a: { c: [{ f: 4, e: 3 }], d: 2 }, b: 1 }
63
- expect(hash.sort_keys(recursive: true)).to eq(expected)
110
+ expected = { a: { c: [{ f: 3, e: 4 }], d: 2 }, b: 1 }
111
+ expect(result).to eq(expected)
112
+ end
113
+
114
+ it 'sorts keys' do
115
+ expect(result.keys).to eq(%i[a b])
116
+ end
117
+
118
+ it 'sorts inner keys' do
119
+ expect(result[:a].keys).to eq(%i[c d])
120
+ end
121
+
122
+ it 'does not sort array deeper inner keys' do
123
+ expect(result[:a][:c].map(&:keys)).to eq([%i[f e]])
124
+ end
125
+
126
+ it 'does not change array deeper inner hash' do
127
+ expect { result }.not_to(change { hash[:a][:c].map(&:keys) })
128
+ end
129
+ end
130
+ end
131
+ end
132
+
133
+ shared_examples 'a class with a keys sort method that changes original' do
134
+ describe '#sort_keys' do
135
+ let(:options) { {} }
136
+
137
+ context 'when keys are symbols' do
138
+ let(:hash) { { b: 1, a: 2 } }
139
+
140
+ it 'changes original hash' do
141
+ expect { result }.to change(hash, :keys)
142
+ .from(%i[b a]).to(%i[a b])
143
+ end
144
+ end
145
+
146
+ context 'when keys are strings' do
147
+ let(:hash) { { 'b' => 1, 'a' => 2 } }
148
+
149
+ it 'changes original hash' do
150
+ expect { result }.to change(hash, :keys)
151
+ .from(%w[b a]).to(%w[a b])
152
+ end
153
+ end
154
+
155
+ context 'when there is a nested hash' do
156
+ let(:hash) { { b: 1, a: { d: 3, c: 4 } } }
157
+
158
+ context 'when no option is given' do
159
+ it 'changes original hash' do
160
+ expect { result }.to change(hash, :keys)
161
+ .from(%i[b a]).to(%i[a b])
162
+ end
163
+
164
+ it 'changes inner hash' do
165
+ expect { result }.to change(hash[:a], :keys)
166
+ .from(%i[d c]).to(%i[c d])
167
+ end
168
+ end
169
+
170
+ context 'when recursive option is given' do
171
+ let(:options) { { recursive: true } }
172
+
173
+ it 'changes original hash' do
174
+ expect { result }.to change(hash, :keys)
175
+ .from(%i[b a]).to(%i[a b])
176
+ end
177
+
178
+ it 'changes inner hash' do
179
+ expect { result }.to change(hash[:a], :keys)
180
+ .from(%i[d c]).to(%i[c d])
181
+ end
182
+ end
183
+
184
+ context 'when no recursive option is given' do
185
+ let(:options) { { recursive: false } }
186
+
187
+ it 'changes original hash' do
188
+ expect { result }.to change(hash, :keys)
189
+ .from(%i[b a]).to(%i[a b])
190
+ end
191
+
192
+ it 'does not change inner hash' do
193
+ expect { result }.not_to change(hash[:a], :keys)
194
+ end
195
+ end
196
+ end
197
+
198
+ context 'when it is deep nestled' do
199
+ let(:hash) { { b: 1, a: { d: 2, c: { f: 3, e: 4 } } } }
200
+
201
+ it 'changes original hash' do
202
+ expect { result }.to change(hash, :keys)
203
+ .from(%i[b a]).to(%i[a b])
204
+ end
205
+
206
+ it 'changes inner hash' do
207
+ expect { result }.to change(hash[:a], :keys)
208
+ .from(%i[d c]).to(%i[c d])
209
+ end
210
+
211
+ it 'changes deeper inner hash' do
212
+ expect { result }.to change(hash[:a][:c], :keys)
213
+ .from(%i[f e]).to(%i[e f])
214
+ end
215
+ end
216
+
217
+ context 'when it has a nestled array' do
218
+ let(:hash) { { b: 1, a: { d: 2, c: [{ f: 3, e: 4 }] } } }
219
+
220
+ it 'changes original hash' do
221
+ expect { result }.to change(hash, :keys)
222
+ .from(%i[b a]).to(%i[a b])
223
+ end
224
+
225
+ it 'changes inner hash' do
226
+ expect { result }.to change(hash[:a], :keys)
227
+ .from(%i[d c]).to(%i[c d])
228
+ end
229
+
230
+ it 'does not change array deeper inner hash' do
231
+ expect { result }.not_to(change { hash[:a][:c].map(&:keys) })
232
+ end
233
+ end
234
+ end
235
+ end
236
+
237
+ shared_examples 'a class with a keys sort method that not change self' do
238
+ describe '#sort_keys' do
239
+ let(:options) { {} }
240
+
241
+ context 'when keys are symbols' do
242
+ let(:hash) { { b: 1, a: 2 } }
243
+
244
+ it 'changes original hash' do
245
+ expect { result }.not_to change(hash, :keys)
246
+ end
247
+ end
248
+
249
+ context 'when keys are strings' do
250
+ let(:hash) { { 'b' => 1, 'a' => 2 } }
251
+
252
+ it 'changes original hash' do
253
+ expect { result }.not_to change(hash, :keys)
254
+ end
255
+ end
256
+
257
+ context 'when there is a nested hash' do
258
+ let(:hash) { { b: 1, a: { d: 3, c: 4 } } }
259
+
260
+ context 'when no option is given' do
261
+ it 'changes original hash' do
262
+ expect { result }.not_to change(hash, :keys)
263
+ end
264
+
265
+ it 'changes inner hash' do
266
+ expect { result }.not_to change(hash[:a], :keys)
267
+ end
268
+ end
269
+
270
+ context 'when recursive option is given' do
271
+ let(:options) { { recursive: true } }
272
+
273
+ it 'changes original hash' do
274
+ expect { result }.not_to change(hash, :keys)
275
+ end
276
+
277
+ it 'changes inner hash' do
278
+ expect { result }.not_to change(hash[:a], :keys)
279
+ end
280
+ end
281
+
282
+ context 'when no recursive option is given' do
283
+ let(:options) { { recursive: false } }
284
+
285
+ it 'changes original hash' do
286
+ expect { result }.not_to change(hash, :keys)
287
+ end
288
+
289
+ it 'does not change inner hash' do
290
+ expect { result }.not_to change(hash[:a], :keys)
291
+ end
292
+ end
293
+ end
294
+
295
+ context 'when it is deep nestled' do
296
+ let(:hash) { { b: 1, a: { d: 2, c: { f: 3, e: 4 } } } }
297
+
298
+ it 'changes original hash' do
299
+ expect { result }.not_to change(hash, :keys)
300
+ end
301
+
302
+ it 'changes inner hash' do
303
+ expect { result }.not_to change(hash[:a], :keys)
304
+ end
305
+
306
+ it 'changes deeper inner hash' do
307
+ expect { result }.not_to change(hash[:a][:c], :keys)
308
+ end
309
+ end
310
+
311
+ context 'when it has a nestled array' do
312
+ let(:hash) { { b: 1, a: { d: 2, c: [{ f: 3, e: 4 }] } } }
313
+
314
+ it 'changes original hash' do
315
+ expect { result }.not_to change(hash, :keys)
316
+ end
317
+
318
+ it 'changes inner hash' do
319
+ expect { result }.not_to change(hash[:a], :keys)
320
+ end
321
+
322
+ it 'does not change array deeper inner hash' do
323
+ expect { result }.not_to(change { hash[:a][:c].map(&:keys) })
64
324
  end
65
325
  end
66
326
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: darthjee-core_ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.4
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darthjee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-01 00:00:00.000000000 Z
11
+ date: 2019-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.17.x
33
+ version: 1.17.3
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.17.x
40
+ version: 1.17.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry-nav
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
110
  version: 1.30.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubycritic
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 4.0.2
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 4.0.2
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: simplecov
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -159,10 +173,12 @@ extra_rdoc_files: []
159
173
  files:
160
174
  - ".circleci/config.yml"
161
175
  - ".gitignore"
176
+ - ".reek.yml"
162
177
  - ".rspec"
163
178
  - ".rubocop.yml"
164
179
  - ".rubocop_todo.yml"
165
180
  - ARRAY_README.md
181
+ - CLASS_README.md
166
182
  - DATE_README.md
167
183
  - Dockerfile
168
184
  - ENUMERABLE_README.md
@@ -174,6 +190,7 @@ files:
174
190
  - README.md
175
191
  - Rakefile
176
192
  - SYMBOL_README.md
193
+ - config/rubycritc.rb
177
194
  - config/yardstick.rb
178
195
  - config/yardstick.yml
179
196
  - core_ext.gemspec
@@ -188,12 +205,13 @@ files:
188
205
  - lib/darthjee/core_ext/hash.rb
189
206
  - lib/darthjee/core_ext/hash/cameliazable.rb
190
207
  - lib/darthjee/core_ext/hash/chain_fetcher.rb
208
+ - lib/darthjee/core_ext/hash/changeable.rb
191
209
  - lib/darthjee/core_ext/hash/deep_hash_constructor.rb
210
+ - lib/darthjee/core_ext/hash/deep_hash_constructor/setter.rb
192
211
  - lib/darthjee/core_ext/hash/key_changeable.rb
193
212
  - lib/darthjee/core_ext/hash/key_changer.rb
194
213
  - lib/darthjee/core_ext/hash/keys_sorter.rb
195
214
  - lib/darthjee/core_ext/hash/squasher.rb
196
- - lib/darthjee/core_ext/hash/to_hash_mapper.rb
197
215
  - lib/darthjee/core_ext/hash/transformable.rb
198
216
  - lib/darthjee/core_ext/hash/transposeable.rb
199
217
  - lib/darthjee/core_ext/hash/value_changer.rb
@@ -204,6 +222,16 @@ files:
204
222
  - lib/darthjee/core_ext/time.rb
205
223
  - lib/darthjee/core_ext/version.rb
206
224
  - mech.jpg
225
+ - scripts/check_readme.sh
226
+ - scripts/rubycritic.sh
227
+ - spec/integration/readme/array_spec.rb
228
+ - spec/integration/readme/class_spec.rb
229
+ - spec/integration/readme/date_spec.rb
230
+ - spec/integration/readme/enumerable_spec.rb
231
+ - spec/integration/readme/hash_spec.rb
232
+ - spec/integration/readme/math_spec.rb
233
+ - spec/integration/readme/object_spec.rb
234
+ - spec/integration/readme/symbol_spec.rb
207
235
  - spec/integration/yard/darthjee/core_ext/array/hash_builder_spec.rb
208
236
  - spec/integration/yard/darthjee/core_ext/array_spec.rb
209
237
  - spec/integration/yard/darthjee/core_ext/class/default_value_spec.rb
@@ -211,18 +239,29 @@ files:
211
239
  - spec/integration/yard/darthjee/core_ext/enumerable_spec.rb
212
240
  - spec/integration/yard/darthjee/core_ext/hash/cameliazable_spec.rb
213
241
  - spec/integration/yard/darthjee/core_ext/hash/chain_fetcher_spec.rb
242
+ - spec/integration/yard/darthjee/core_ext/hash/changeable_spec.rb
243
+ - spec/integration/yard/darthjee/core_ext/hash/deep_hash_constructor/setter_spec.rb
244
+ - spec/integration/yard/darthjee/core_ext/hash/deep_hash_constructor_spec.rb
214
245
  - spec/integration/yard/darthjee/core_ext/hash/key_changeable_spec.rb
246
+ - spec/integration/yard/darthjee/core_ext/hash/key_changer_spec.rb
247
+ - spec/integration/yard/darthjee/core_ext/hash/keys_sorter_spec.rb
248
+ - spec/integration/yard/darthjee/core_ext/hash/squasher_spec.rb
215
249
  - spec/integration/yard/darthjee/core_ext/hash/transformable_spec.rb
250
+ - spec/integration/yard/darthjee/core_ext/hash/transposeable_spec.rb
216
251
  - spec/integration/yard/darthjee/core_ext/hash/value_changer_spec.rb
217
252
  - spec/integration/yard/darthjee/core_ext/hash_spec.rb
253
+ - spec/integration/yard/darthjee/core_ext/math_spec.rb
254
+ - spec/integration/yard/darthjee/core_ext/numeric_spec.rb
255
+ - spec/integration/yard/darthjee/core_ext/object_spec.rb
256
+ - spec/integration/yard/darthjee/core_ext/symbol_spec.rb
218
257
  - spec/lib/array_spec.rb
219
258
  - spec/lib/class_spec.rb
220
259
  - spec/lib/darthjee/core_ext/hash/chain_fetcher_spec.rb
260
+ - spec/lib/darthjee/core_ext/hash/deep_hash_constructor/setter_spec.rb
221
261
  - spec/lib/darthjee/core_ext/hash/deep_hash_constructor_spec.rb
222
262
  - spec/lib/darthjee/core_ext/hash/key_changer_spec.rb
223
263
  - spec/lib/darthjee/core_ext/hash/keys_sorter_spec.rb
224
264
  - spec/lib/darthjee/core_ext/hash/squasher_spec.rb
225
- - spec/lib/darthjee/core_ext/hash/to_hash_mapper_spec.rb
226
265
  - spec/lib/darthjee/core_ext/hash/value_changer_spec.rb
227
266
  - spec/lib/date_spec.rb
228
267
  - spec/lib/enumerable_spec.rb
@@ -233,6 +272,7 @@ files:
233
272
  - spec/lib/symbol_spec.rb
234
273
  - spec/lib/time_spec.rb
235
274
  - spec/spec_helper.rb
275
+ - spec/support/models/client.rb
236
276
  - spec/support/models/default_reader_model.rb
237
277
  - spec/support/models/default_value_model.rb
238
278
  - spec/support/models/dummy_iterator.rb
@@ -245,6 +285,7 @@ files:
245
285
  - spec/support/shared_examples/expected.rb
246
286
  - spec/support/shared_examples/hash/chain_fetch.rb
247
287
  - spec/support/shared_examples/hash/chain_hash_keys_changer.rb
288
+ - spec/support/shared_examples/hash/deep_hash.rb
248
289
  - spec/support/shared_examples/hash/hash_keys_changer.rb
249
290
  - spec/support/shared_examples/hash/hash_squasher.rb
250
291
  - spec/support/shared_examples/hash/hash_transpose.rb
@@ -266,7 +307,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
266
307
  requirements:
267
308
  - - ">="
268
309
  - !ruby/object:Gem::Version
269
- version: '0'
310
+ version: 2.4.0
270
311
  required_rubygems_version: !ruby/object:Gem::Requirement
271
312
  requirements:
272
313
  - - ">="
@@ -279,6 +320,14 @@ signing_key:
279
320
  specification_version: 4
280
321
  summary: Core Extensions
281
322
  test_files:
323
+ - spec/integration/readme/array_spec.rb
324
+ - spec/integration/readme/class_spec.rb
325
+ - spec/integration/readme/date_spec.rb
326
+ - spec/integration/readme/enumerable_spec.rb
327
+ - spec/integration/readme/hash_spec.rb
328
+ - spec/integration/readme/math_spec.rb
329
+ - spec/integration/readme/object_spec.rb
330
+ - spec/integration/readme/symbol_spec.rb
282
331
  - spec/integration/yard/darthjee/core_ext/array/hash_builder_spec.rb
283
332
  - spec/integration/yard/darthjee/core_ext/array_spec.rb
284
333
  - spec/integration/yard/darthjee/core_ext/class/default_value_spec.rb
@@ -286,18 +335,29 @@ test_files:
286
335
  - spec/integration/yard/darthjee/core_ext/enumerable_spec.rb
287
336
  - spec/integration/yard/darthjee/core_ext/hash/cameliazable_spec.rb
288
337
  - spec/integration/yard/darthjee/core_ext/hash/chain_fetcher_spec.rb
338
+ - spec/integration/yard/darthjee/core_ext/hash/changeable_spec.rb
339
+ - spec/integration/yard/darthjee/core_ext/hash/deep_hash_constructor/setter_spec.rb
340
+ - spec/integration/yard/darthjee/core_ext/hash/deep_hash_constructor_spec.rb
289
341
  - spec/integration/yard/darthjee/core_ext/hash/key_changeable_spec.rb
342
+ - spec/integration/yard/darthjee/core_ext/hash/key_changer_spec.rb
343
+ - spec/integration/yard/darthjee/core_ext/hash/keys_sorter_spec.rb
344
+ - spec/integration/yard/darthjee/core_ext/hash/squasher_spec.rb
290
345
  - spec/integration/yard/darthjee/core_ext/hash/transformable_spec.rb
346
+ - spec/integration/yard/darthjee/core_ext/hash/transposeable_spec.rb
291
347
  - spec/integration/yard/darthjee/core_ext/hash/value_changer_spec.rb
292
348
  - spec/integration/yard/darthjee/core_ext/hash_spec.rb
349
+ - spec/integration/yard/darthjee/core_ext/math_spec.rb
350
+ - spec/integration/yard/darthjee/core_ext/numeric_spec.rb
351
+ - spec/integration/yard/darthjee/core_ext/object_spec.rb
352
+ - spec/integration/yard/darthjee/core_ext/symbol_spec.rb
293
353
  - spec/lib/array_spec.rb
294
354
  - spec/lib/class_spec.rb
295
355
  - spec/lib/darthjee/core_ext/hash/chain_fetcher_spec.rb
356
+ - spec/lib/darthjee/core_ext/hash/deep_hash_constructor/setter_spec.rb
296
357
  - spec/lib/darthjee/core_ext/hash/deep_hash_constructor_spec.rb
297
358
  - spec/lib/darthjee/core_ext/hash/key_changer_spec.rb
298
359
  - spec/lib/darthjee/core_ext/hash/keys_sorter_spec.rb
299
360
  - spec/lib/darthjee/core_ext/hash/squasher_spec.rb
300
- - spec/lib/darthjee/core_ext/hash/to_hash_mapper_spec.rb
301
361
  - spec/lib/darthjee/core_ext/hash/value_changer_spec.rb
302
362
  - spec/lib/date_spec.rb
303
363
  - spec/lib/enumerable_spec.rb
@@ -308,6 +368,7 @@ test_files:
308
368
  - spec/lib/symbol_spec.rb
309
369
  - spec/lib/time_spec.rb
310
370
  - spec/spec_helper.rb
371
+ - spec/support/models/client.rb
311
372
  - spec/support/models/default_reader_model.rb
312
373
  - spec/support/models/default_value_model.rb
313
374
  - spec/support/models/dummy_iterator.rb
@@ -320,6 +381,7 @@ test_files:
320
381
  - spec/support/shared_examples/expected.rb
321
382
  - spec/support/shared_examples/hash/chain_fetch.rb
322
383
  - spec/support/shared_examples/hash/chain_hash_keys_changer.rb
384
+ - spec/support/shared_examples/hash/deep_hash.rb
323
385
  - spec/support/shared_examples/hash/hash_keys_changer.rb
324
386
  - spec/support/shared_examples/hash/hash_squasher.rb
325
387
  - spec/support/shared_examples/hash/hash_transpose.rb