darthjee-core_ext 1.2.6 → 1.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d36ee33e60a4897dde6c91aa95e63d8644253493
4
- data.tar.gz: e5f8f6d6ff67007a00486e40fa6dc72b472241f1
3
+ metadata.gz: e119db2a6c2d8eb97f42b48b82500d93f81665fb
4
+ data.tar.gz: 9fa9cbda6ad8a1feef1f57eb917df0b0391d8a52
5
5
  SHA512:
6
- metadata.gz: 0d0dea263e737fb1838163f640681dcba2f7cee1b9ddedcc6518d0aa68cf95c8b6a0e6f227508174b997a58f79b79ecd095debf8f16e6496d731bc7a648743de
7
- data.tar.gz: '03768926ec5377779a98c52326f93cf7e0bacee374b7be6228e01fdaf56cf342ac80bb1aad6a624ec2394cfbff38af90c225068672a46be81dcf3d625098baf5'
6
+ metadata.gz: 4f904ea861ca6e47029632718356f0802d4f828bb4343ea5fd14db142406a6ec95c4462c28b2010bab2eb410af6b71539a08e87e34ec5cc849062239f8f05529
7
+ data.tar.gz: 90afdb065d5f08e91ee76927ff2487d0f848ae903af8c036f42ac89e318a1b34b2b24f2343165b2aff9059197a6a066012763252159028642e57518a7039af8f
data/ARRAY_README.md ADDED
@@ -0,0 +1,35 @@
1
+ ## Array
2
+ ### #map_to_hash
3
+ map returning a hash with the original array for keys
4
+
5
+ ```ruby
6
+ array = %w(a ab)
7
+ arrays.map_to_hash { |val| val.length }
8
+ { 'a' => 1, 'b' => 2 }
9
+ ```
10
+
11
+ ### #chain_map
12
+ applies map in a chain
13
+
14
+ ```ruby
15
+ array = [ :a, :long_name, :sym ]
16
+ array.chain_map(:to_s, :size, :to_s)
17
+ [ '1', '9', '3' ]
18
+ ```
19
+
20
+ ```ruby
21
+ array = [ :a, :long_name, :sym ]
22
+ array.chain_map(:to_s, :size) { |v| "final: #{v}" }
23
+ [ 'final: 1', 'final: 9', 'final: 3' ]
24
+ ```
25
+
26
+ ### #as_hash
27
+ Creates a hash from the array using the argumen array as keys
28
+
29
+ ```ruby
30
+ [1, 2, 3].as_hash %w(a b c)
31
+ ```
32
+ returns
33
+ ```ruby
34
+ { 'a' => 1, 'b' => 2, 'c' => 3 } }
35
+ ```
@@ -0,0 +1,12 @@
1
+ ## Enumerable
2
+
3
+ ### #clean!
4
+ Cleans empty values from a hash
5
+ ```ruby
6
+ { a: 1, b: [], c: nil, d: {}, e: '', f: { b: [], c: nil, d: {}, e: '' } }.clean!
7
+ ```
8
+ returns
9
+ ```ruby
10
+ {}
11
+ ```
12
+
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- darthjee-core_ext (1.2.6)
4
+ darthjee-core_ext (1.3.0)
5
5
  activesupport (~> 5.1.1)
6
6
 
7
7
  GEM
data/HASH_README.md ADDED
@@ -0,0 +1,252 @@
1
+ ## Hash
2
+ ### #map_to_hash
3
+ map returning a hash with the original keys
4
+
5
+ ```ruby
6
+ hash = { a: 1, b: 2 }
7
+ hash.map_to_hash { |k, v| "#{k}_#{v}" }
8
+ { a: "a_1", b: "b_2" }
9
+ ```
10
+
11
+ ### #chain_fetch
12
+ Applies fetch in a chain
13
+
14
+ ```ruby
15
+ { a: { b: { c: { d: 10 } } } }.chain_fetch(:a, :b, :c, :d)
16
+ 10
17
+ ```
18
+
19
+ A block can be passed so that when a key is not found, the block will define the value to be returned
20
+
21
+ ```ruby
22
+ h = { a: { b: { c: { d: 10 } } } }
23
+ h.chain_fetch(:a, :x, :y, :z) { |key, missed_keys| "returned #{key}" }
24
+ 'returned x'
25
+ ```
26
+
27
+ ### #squash
28
+ Squash a deep hash into a simple level hash
29
+
30
+ ```ruby
31
+ { a: { b:1 } }.squash
32
+ ```
33
+ returns
34
+ ```ruby
35
+ { 'a.b' => 1 }
36
+ ```
37
+
38
+ ### #to_deep_hash
39
+ Changes a hash spliting keys into inner hashs
40
+
41
+ ```ruby
42
+ { 'a.b' => 1 }.to_deep_hash
43
+ ```
44
+ returns
45
+ ```ruby
46
+ { 'a' => { 'b' => 1 } }
47
+ ```
48
+
49
+ ### #change_keys
50
+ Change the array keys using a block accepting parameters:
51
+ - recursive: when true, does it recursivly through inner arrays (default: true)
52
+
53
+ ```ruby
54
+ { ca_b: 1, k: [{ a_b: 1 }] }.change_keys { |k| k.to_s.upcase }
55
+ ```
56
+ returns
57
+ ```ruby
58
+ {"CA_B"=>1, "K"=>[{"A_B"=>1}]}
59
+ ```
60
+
61
+ ```ruby
62
+ { ca_b: 1, k: [{ a_b: 1 }] }.change_keys(recursive: false) { |k| k.to_s.upcase }
63
+ ```
64
+ returns
65
+ ```ruby
66
+ {"CA_B"=>1, "K"=>[{:a_b=>1}]}
67
+ ```
68
+
69
+ ### #chain_change_keys
70
+ Change the hash keys usin a chained method call
71
+
72
+ ```ruby
73
+ { ca_b: 1 }.chain_change_keys(:to_s, :upcase, :to_sym)
74
+ ```
75
+ returns
76
+ ```ruby
77
+ { CA_B: 1 }
78
+ ```
79
+
80
+ ### #camelize_keys
81
+ Change the keys camelizing them and accepting parameters:
82
+ - uppercase_first_letter: Use the java or javascript format (default: true)
83
+ - recursive: when true, does it recursivly through inner arrays (default: true)
84
+
85
+ ```ruby
86
+ { ca_b: 1, k: [{ a_b: 1 }] }.camelize_keys
87
+ ```
88
+ returns
89
+ ```ruby
90
+ {:CaB=>1, :K=>[{:AB=>1}]}
91
+ ```
92
+
93
+ ```ruby
94
+ { ca_b: 1, k: [{ a_b: 1 }] }.camelize_keys(recursive: false)
95
+ ```
96
+ returns
97
+ ```ruby
98
+ {:CaB=>1, :K=>[{:a_b=>1}]}
99
+ ```
100
+
101
+ ```ruby
102
+ { ca_b: 1, k: [{ a_b: 1 }] }.camelize_keys(uppercase_first_letter: false)
103
+ ```
104
+ returns
105
+ ```ruby
106
+ {:caB=>1, :k=>[{:aB=>1}]}
107
+ ```
108
+
109
+ ### #lower_camelize_keys
110
+ Alias for [#camelize_keys](camelize_keys)(uppercase_first_letter: false)
111
+
112
+ ```ruby
113
+ { ca_b: 1, k: [{ a_b: 1 }] }.lower_camelize_keys
114
+ ```
115
+ returns
116
+ ```ruby
117
+ {:caB=>1, :k=>[{:aB=>1}]}
118
+ ```
119
+
120
+ ### #underscore_keys
121
+ Change the keys from camelcase to snakecase (underscore)
122
+ - recursive: when true, does it recursivly through inner arrays (default: true)
123
+
124
+ ```ruby
125
+ { Ca_B: 1, 'kB' => [{ KeysHash: 1 }] }.underscore_keys
126
+ ```
127
+ returns
128
+ ```ruby
129
+ {ca_b: 1, "k_b"=>[{keys_hash: 1}]}
130
+ ```
131
+
132
+ ### #change_values
133
+ Change the values of the array accepting parametes:
134
+ - recursive: when true, does it recursivly through inner arrays and hashes (default: true)
135
+ - skip_inner: when true, do not call the block for iterators such as Hash and Arrays (default: true)
136
+
137
+ ```ruby
138
+ { a: 1, b: [{ c: 2 }] }.change_values { |v| (v+1).to_s }
139
+ ```
140
+ returns
141
+ ```ruby
142
+ { a: '2' b: [{ c: '3' }] }
143
+ ```
144
+
145
+ ```ruby
146
+ { a: 1, b: [{ c: 2 }] }.change_values(recursive: false) { |v| (v+1).to_s }
147
+ ```
148
+ returns
149
+ ```ruby
150
+ { a: '2' b: [{ c: 2 }] }
151
+ ```
152
+
153
+ ```ruby
154
+ { a: 1, b: [{ c: 2 }] }.change_values(skip_inner: false) do |v|
155
+ v.is_a?(Integer) ? (v+1).to_s : v.class
156
+ end
157
+ ```
158
+ returns
159
+ ```ruby
160
+ { a: '2' b: Array }
161
+ ```
162
+
163
+ ### #prepend_to_keys
164
+ Change each keys prepending an string
165
+
166
+ ```ruby
167
+ { key: 1 }.prepend_to_keys 'scope:'
168
+ ```
169
+ returns
170
+ ```ruby
171
+ { :'scope:key' => 1 }
172
+ ```
173
+ ### #append_to_keys
174
+ Change each keys appending an string
175
+
176
+ ```ruby
177
+ { key: 1 }.append_to_keys 's'
178
+ ```
179
+ returns
180
+ ```ruby
181
+ { keys: 1 }
182
+ ```
183
+
184
+ ### #sort_keys
185
+ Sort the hash usig the keys
186
+
187
+ ```ruby
188
+ { b:1, a:2 }.sort_keys
189
+ ```
190
+ returns
191
+ ```ruby
192
+ { a:2, b:1 }
193
+ ```
194
+
195
+ ### #map_to_hash
196
+ map returning a hash with the original keys for keys
197
+
198
+ ```ruby
199
+ hash = { a: 1, b: 2 }
200
+ hash.map_to_hash { |k, v| "#{k}_#{v}" }
201
+ { a: 'a_1', b: 'b_2' }
202
+ ```
203
+
204
+ ### #remap_keys
205
+ Changes the keys of the hash based on a map of { old: new } value
206
+
207
+ ```ruby
208
+ hash = { a: 1, b: 2 }
209
+ hash.remap_keys(a: :c, d: :e)
210
+ { c: 1, b: 2, e: nil }
211
+ ```
212
+
213
+ ### #exclusive_merge
214
+ Like #merge but only for existing keys
215
+
216
+ ```ruby
217
+ { a: 1, b: 2 }.exclusive_merge(b: 3, c: 4)
218
+ { a: 1, b: 3 }
219
+ ```
220
+
221
+ ### #clean
222
+ Cleans empty values from a hash
223
+ ```ruby
224
+ { a: 1, b: [], c: nil, d: {}, e: '', f: { b: [], c: nil, d: {}, e: '' } }.clean
225
+ ```
226
+ returns
227
+ ```ruby
228
+ {}
229
+ ```
230
+
231
+ ### #map_and_find
232
+ Operates like map, but will stop as soon as a non false value is found returning the value found
233
+
234
+ ```ruby
235
+ class Ob
236
+ attr_reader :v
237
+ def initialize(v = nil)
238
+ @v = v
239
+ end
240
+ end
241
+ hash = { a: Ob.new, b: Ob.new(false), c: Ob.new(1), d: Ob.new(3) }
242
+ ```
243
+
244
+ ```ruby
245
+ hash.map_and_find { |k,o| o.v }
246
+ 1
247
+ ```
248
+
249
+ ```ruby
250
+ hash.map_and_find { |k,o| o.v && k }
251
+ :c
252
+ ```
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  Core_Ext
2
2
  ========
3
3
 
4
+ # Usage
4
5
  This project adds some new methods to the core ruby classes
5
6
 
6
7
  To use core-ext either intall directly
@@ -9,180 +10,21 @@ To use core-ext either intall directly
9
10
  gem install darthjee-core_ext
10
11
  ```
11
12
 
13
+ or add it to Gemfile
14
+
12
15
  ```
13
- gem 'danica'
16
+ gem 'darthjee-core_ext'
14
17
  ```
15
18
 
16
19
  ```console
17
- bundle install danica
20
+ bundle install darthjee-core_ext
18
21
  ```
19
22
 
23
+ #methods added
20
24
 
21
25
  ## Array
22
- ### map_to_hash
23
- map returning a hash with the original array for keys
24
-
25
- ```ruby
26
- array = %w(a ab)
27
- arrays.map_to_hash { |val| val.length }
28
- { 'a' => 1, 'b' => 2 }
29
- ```
30
-
31
- ### chain_map
32
- applies map in a chain
33
-
34
- ```ruby
35
- array = [ :a, :long_name, :sym ]
36
- array.chain_map(:to_s, :size, :to_s)
37
- [ '1', '9', '3' ]
38
- ```
39
-
40
- ```ruby
41
- array = [ :a, :long_name, :sym ]
42
- array.chain_map(:to_s, :size) { |v| "final: #{v}" }
43
- [ 'final: 1', 'final: 9', 'final: 3' ]
44
- ```
45
-
46
- ### as_hash
47
- Creates a hash from the array using the argumen array as keys
48
-
49
- ```ruby
50
- [1, 2, 3].as_hash %w(a b c)
51
- ```
52
- returns
53
- ```ruby
54
- { 'a' => 1, 'b' => 2, 'c' => 3 } }
55
- ```
56
-
26
+ [ARRAY_README.md](ARRAY_README.md)
57
27
  ## Hash
58
- ### map_to_hash
59
- map returning a hash with the original keys
60
-
61
- ```ruby
62
- hash = { a: 1, b: 2 }
63
- hash.map_to_hash { |k, v| "#{k}_#{v}" }
64
- { a: "a_1", b: "b_2" }
65
- ```
66
-
67
- ### chain_fetch
68
- Applies fetch in a chain
69
-
70
- ```ruby
71
- { a: { b: { c: { d: 10 } } } }.chain_fetch(:a, :b, :c, :d)
72
- 10
73
- ```
74
- ```ruby
75
- h = { a: { b: { c: { d: 10 } } } }
76
- h.chain_fetch(:a, :x, :y, :z) { |key, missed_keys| "returned #{key}" }
77
- 'returned x'
78
- ```
79
-
80
- ### squash
81
- Squash a deep hash into a simple level hash
82
-
83
- ```ruby
84
- { a: { b:1 } }.squash
85
- ```
86
- returns
87
- ```ruby
88
- { 'a.b' => 1 }
89
- ```
90
-
91
- ### to_deep_hash
92
- Changes a hash spliting keys into inner hashs
93
-
94
- ```ruby
95
- { 'a.b' => 1 }.to_deep_hash
96
- ```
97
- returns
98
- ```ruby
99
- { 'a' => { 'b' => 1 } }
100
- ```
101
-
102
- ### camelize_keys
103
- Change the keys camelizing them
104
-
105
- ```ruby
106
- { ca_b: 1 }.camelize_keys
107
- ```
108
- returns
109
- ```ruby
110
- { CaB: 1 }
111
- ```
112
-
113
- ### change_keys
114
- Change the array keys using a block
115
-
116
- ```ruby
117
- { ca_b: 1 }.change_keys { |k| k.to_s.upcase }
118
- ```
119
- returns
120
- ```ruby
121
- { 'CA_B' => 1 }
122
- ```
123
-
124
- ### chain_change_keys
125
- Change the hash keys usin a chained method call
126
-
127
- ```ruby
128
- { ca_b: 1 }.chain_change_keys(:to_s, :upcase, :to_sym)
129
- ```
130
- returns
131
- ```ruby
132
- { CA_B: 1 }
133
- ```
134
-
135
- ### change_values
136
- Change the values of the array
137
- ```ruby
138
- { a: 1 }.change_keys { |v| (v+1).to_s }
139
- ```
140
- returns
141
- ```ruby
142
- { a: '2' }
143
- ```
144
-
145
- ### prepend_to_keys
146
- Change each keys prepending an string
147
-
148
- ```ruby
149
- { key: 1 }.prepend_to_keys 'scope:'
150
- ```
151
- returns
152
- ```ruby
153
- { :'scope:key' => 1 }
154
- ```
155
- ### append_to_keys
156
- Change each keys appending an string
157
-
158
- ```ruby
159
- { key: 1 }.append_to_keys 's'
160
- ```
161
- returns
162
- ```ruby
163
- { keys: 1 }
164
- ```
165
-
166
- ### sort_keys
167
- Sort the hash usig the keys
168
-
169
- ```ruby
170
- { b:1, a:2 }.sort_keys
171
- ```
172
- returns
173
- ```ruby
174
- { a:2, b:1 }
175
- ```
176
-
28
+ [HASH_README.md](HASH_README.md)
177
29
  ## Enumerable
178
-
179
- ## clean!
180
- CLeans empty values from a hash
181
- ```ruby
182
- { a: 1, b: [], c: nil, d: {}, e: '', f: { b: [], c: nil, d: {}, e: '' } }.clean!
183
- ```
184
- returns
185
- ```ruby
186
- {}
187
- ```
188
-
30
+ [ENUMERABLE_README.md](ENUMERABLE_README.md)
@@ -1,5 +1,5 @@
1
1
  module Darthjee
2
2
  module CoreExt
3
- VERSION = '1.2.6'
3
+ VERSION = '1.3.0'
4
4
  end
5
5
  end
@@ -1,6 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Array do
4
+ it_behaves_like 'an array with map_to_hash method'
5
+
4
6
  describe '#chain_map' do
5
7
  let(:array) { [ :a, :long_name, :sym ] }
6
8
  let(:mapped) { array.chain_map(:to_s, :size, :to_s) }
@@ -145,85 +147,4 @@ describe Array do
145
147
  end
146
148
  end
147
149
  end
148
-
149
- describe '#map_to_hash' do
150
- context 'whe subject is an array' do
151
- let(:subject) { %w(word1 wooord2) }
152
- let(:mapping_block) { proc{ |word| word.length } }
153
- let(:mapped) { subject.map_to_hash(&mapping_block) }
154
- let(:expected) { { 'word1' => 5, 'wooord2' => 7 } }
155
-
156
- it { expect(mapped).to be_a(Hash) }
157
-
158
- it 'has the original array as keys' do
159
- expect(mapped.keys).to eq(subject)
160
- end
161
-
162
- it 'has the mapped values as values' do
163
- expect(mapped.values).to eq(subject.map(&mapping_block))
164
- end
165
-
166
- it 'correctly map keys to value' do
167
- expect(mapped).to eq(expected)
168
- end
169
-
170
- context 'whe subject is an array' do
171
- let(:subject) { [%w(w1), %w(w2 w3)] }
172
- let(:mapped) { subject.map_to_hash(&mapping_block) }
173
- let(:expected) { { %w(w1) => 1, %w(w2 w3) => 2 } }
174
-
175
-
176
- it 'has the original array as keys' do
177
- expect(mapped.keys).to eq(subject)
178
- end
179
-
180
- it 'has the mapped values as values' do
181
- expect(mapped.values).to eq(subject.map(&mapping_block))
182
- end
183
-
184
- it 'correctly map keys to value' do
185
- expect(mapped).to eq(expected)
186
- end
187
- end
188
- end
189
-
190
- context 'whe subject is a hash' do
191
- let(:subject) { { a: 1, b: 2 } }
192
- let(:mapping_block) { proc{ |k, v| "#{k}_#{v}" } }
193
- let(:mapped) { subject.map_to_hash(&mapping_block) }
194
- let(:expected) { { a: 'a_1', b: 'b_2' } }
195
-
196
- it { expect(mapped).to be_a(Hash) }
197
-
198
- it 'has the original keys as keys' do
199
- expect(mapped.keys).to eq(subject.keys)
200
- end
201
-
202
- it 'has the mapped values as values' do
203
- expect(mapped.values).to eq(subject.map(&mapping_block))
204
- end
205
-
206
- it 'correctly map keys to value' do
207
- expect(mapped).to eq(expected)
208
- end
209
-
210
- context 'when hash uses arrays for keys' do
211
- let(:subject) { { [:a, :b] => 1, [:c, :d] => 2 } }
212
- let(:mapping_block) { proc{ |k, v| "#{k.join('_')}_#{v}" } }
213
- let(:expected) { { [:a, :b]=> 'a_b_1', [:c, :d] => 'c_d_2' } }
214
-
215
- it 'has the original keys as keys' do
216
- expect(mapped.keys).to eq(subject.keys)
217
- end
218
-
219
- it 'has the mapped values as values' do
220
- expect(mapped.values).to eq(subject.map(&mapping_block))
221
- end
222
-
223
- it 'correctly map keys to value' do
224
- expect(mapped).to eq(expected)
225
- end
226
- end
227
- end
228
- end
229
150
  end
@@ -9,6 +9,7 @@ describe Hash do
9
9
  it_behaves_like 'a class with change_values method'
10
10
  it_behaves_like 'a class with remap method'
11
11
  it_behaves_like 'an object with chain_fetch method'
12
+ it_behaves_like 'a hash with map_to_hash method'
12
13
 
13
14
  describe :squash do
14
15
  let(:hash) { { a: { b: 1, c: { d: 2 } } } }
@@ -0,0 +1,86 @@
1
+ shared_examples 'an array with map_to_hash method' do
2
+ describe '#map_to_hash' do
3
+ let(:subject) { %w(word1 wooord2) }
4
+ let(:mapping_block) { proc{ |word| word.length } }
5
+ let(:mapped) { subject.map_to_hash(&mapping_block) }
6
+ let(:expected) { { 'word1' => 5, 'wooord2' => 7 } }
7
+
8
+ it { expect(mapped).to be_a(Hash) }
9
+
10
+ it 'has the original array as keys' do
11
+ expect(mapped.keys).to eq(subject)
12
+ end
13
+
14
+ it 'has the mapped values as values' do
15
+ expect(mapped.values).to eq(subject.map(&mapping_block))
16
+ end
17
+
18
+ it 'correctly map keys to value' do
19
+ expect(mapped).to eq(expected)
20
+ end
21
+
22
+ context 'whe subject is an array' do
23
+ let(:subject) { [%w(w1), %w(w2 w3)] }
24
+ let(:mapped) { subject.map_to_hash(&mapping_block) }
25
+ let(:expected) { { %w(w1) => 1, %w(w2 w3) => 2 } }
26
+
27
+
28
+ it 'has the original array as keys' do
29
+ expect(mapped.keys).to eq(subject)
30
+ end
31
+
32
+ it 'has the mapped values as values' do
33
+ expect(mapped.values).to eq(subject.map(&mapping_block))
34
+ end
35
+
36
+ it 'correctly map keys to value' do
37
+ expect(mapped).to eq(expected)
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ shared_examples 'a hash with map_to_hash method' do
44
+ describe '#map_to_hash' do
45
+ let(:subject) { { a: 1, b: 2 } }
46
+ let(:mapping_block) { proc{ |k, v| "#{k}_#{v}" } }
47
+ let(:mapped) { subject.map_to_hash(&mapping_block) }
48
+ let(:expected) { { a: 'a_1', b: 'b_2' } }
49
+
50
+ it { expect(mapped).to be_a(Hash) }
51
+
52
+ it do
53
+ expect { subject.map_to_hash(&mapping_block) }.not_to change { subject }
54
+ end
55
+
56
+ it 'has the original keys as keys' do
57
+ expect(mapped.keys).to eq(subject.keys)
58
+ end
59
+
60
+ it 'has the mapped values as values' do
61
+ expect(mapped.values).to eq(subject.map(&mapping_block))
62
+ end
63
+
64
+ it 'correctly map keys to value' do
65
+ expect(mapped).to eq(expected)
66
+ end
67
+
68
+ context 'when hash uses arrays for keys' do
69
+ let(:subject) { { [:a, :b] => 1, [:c, :d] => 2 } }
70
+ let(:mapping_block) { proc{ |k, v| "#{k.join('_')}_#{v}" } }
71
+ let(:expected) { { [:a, :b]=> 'a_b_1', [:c, :d] => 'c_d_2' } }
72
+
73
+ it 'has the original keys as keys' do
74
+ expect(mapped.keys).to eq(subject.keys)
75
+ end
76
+
77
+ it 'has the mapped values as values' do
78
+ expect(mapped.values).to eq(subject.map(&mapping_block))
79
+ end
80
+
81
+ it 'correctly map keys to value' do
82
+ expect(mapped).to eq(expected)
83
+ end
84
+ end
85
+ end
86
+ 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.2.6
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darthjee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-08 00:00:00.000000000 Z
11
+ date: 2017-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -131,8 +131,11 @@ extra_rdoc_files: []
131
131
  files:
132
132
  - ".gitignore"
133
133
  - ".rspec"
134
+ - ARRAY_README.md
135
+ - ENUMERABLE_README.md
134
136
  - Gemfile
135
137
  - Gemfile.lock
138
+ - HASH_README.md
136
139
  - LICENSE
137
140
  - README.md
138
141
  - Rakefile
@@ -168,6 +171,7 @@ files:
168
171
  - spec/support/shared_examples/keys_appender.rb
169
172
  - spec/support/shared_examples/keys_camelizer.rb
170
173
  - spec/support/shared_examples/keys_underscorer.rb
174
+ - spec/support/shared_examples/map_to_hash.rb
171
175
  - spec/support/shared_examples/remap.rb
172
176
  - spec/support/shared_examples/value_changer.rb
173
177
  homepage:
@@ -213,5 +217,6 @@ test_files:
213
217
  - spec/support/shared_examples/keys_appender.rb
214
218
  - spec/support/shared_examples/keys_camelizer.rb
215
219
  - spec/support/shared_examples/keys_underscorer.rb
220
+ - spec/support/shared_examples/map_to_hash.rb
216
221
  - spec/support/shared_examples/remap.rb
217
222
  - spec/support/shared_examples/value_changer.rb