bidu-core_ext 1.2.2 → 1.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +6 -7
- data/README.md +20 -1
- data/lib/bidu/core_ext/version.rb +1 -1
- data/lib/enumerable.rb +8 -0
- data/lib/hash.rb +8 -0
- data/spec/lib/array_spec.rb +81 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b59372acd2cbf72c2ce3da4da40d77eed277e706
|
4
|
+
data.tar.gz: 2f1294f24be1e567e6b508c67d8a70fd09d0f278
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0972c125e7aba80a11163b24ca6e45cd4508e57eca74e0bffa767747ca192258b5130ed0151daec8c825452c9eb5b0036fe54d8a516ee510a15c32dd62e956f9
|
7
|
+
data.tar.gz: 7baca49a766b41edb9ddb8c75d457f5d8c98d5ebb267915f03526ac6fd449379020116800567d3df9d87b208d4ae3b01d65e53046b50675ff9876c2c81f03fed
|
data/Gemfile.lock
CHANGED
@@ -1,25 +1,24 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
bidu-core_ext (1.2.
|
4
|
+
bidu-core_ext (1.2.3)
|
5
5
|
activesupport
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
activesupport (
|
10
|
+
activesupport (5.0.0.1)
|
11
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
11
12
|
i18n (~> 0.7)
|
12
|
-
json (~> 1.7, >= 1.7.7)
|
13
13
|
minitest (~> 5.1)
|
14
|
-
thread_safe (~> 0.3, >= 0.3.4)
|
15
14
|
tzinfo (~> 1.1)
|
16
15
|
coderay (1.1.0)
|
16
|
+
concurrent-ruby (1.0.2)
|
17
17
|
diff-lcs (1.2.5)
|
18
18
|
docile (1.1.5)
|
19
19
|
i18n (0.7.0)
|
20
|
-
json (1.8.3)
|
21
20
|
method_source (0.8.2)
|
22
|
-
minitest (5.9.
|
21
|
+
minitest (5.9.1)
|
23
22
|
multi_json (1.10.1)
|
24
23
|
pry (0.10.3)
|
25
24
|
coderay (~> 1.1.0)
|
@@ -59,4 +58,4 @@ DEPENDENCIES
|
|
59
58
|
simplecov
|
60
59
|
|
61
60
|
BUNDLED WITH
|
62
|
-
1.
|
61
|
+
1.12.5
|
data/README.md
CHANGED
@@ -4,6 +4,15 @@ Core_Ext
|
|
4
4
|
This project adds some new methods to the core ruby classes
|
5
5
|
|
6
6
|
## Array
|
7
|
+
###map_to_hash
|
8
|
+
map returning a hash with the original array for keys
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
array = %w(a ab)
|
12
|
+
arrays.map_to_hash { |val| val.length }
|
13
|
+
{ 'a' => 1, 'b' => 2 }
|
14
|
+
```
|
15
|
+
|
7
16
|
### chain_map
|
8
17
|
applies map in a chain
|
9
18
|
|
@@ -31,6 +40,15 @@ returns
|
|
31
40
|
```
|
32
41
|
|
33
42
|
## Hash
|
43
|
+
###map_to_hash
|
44
|
+
map returning a hash with the original keys
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
hash = { a: 1, b: 2 }
|
48
|
+
hash.map_to_hash { |k, v| "#{k}_#{v}" }
|
49
|
+
{ a: "a_1", b: "b_2" }
|
50
|
+
```
|
51
|
+
|
34
52
|
### chain_fetch
|
35
53
|
Applies fetch in a chain
|
36
54
|
|
@@ -140,4 +158,5 @@ CLeans empty values from a hash
|
|
140
158
|
returns
|
141
159
|
```ruby
|
142
160
|
{}
|
143
|
-
```
|
161
|
+
```
|
162
|
+
|
data/lib/enumerable.rb
CHANGED
data/lib/hash.rb
CHANGED
data/spec/lib/array_spec.rb
CHANGED
@@ -145,4 +145,85 @@ describe Array do
|
|
145
145
|
end
|
146
146
|
end
|
147
147
|
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
|
148
229
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bidu-core_ext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bidu Developers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|