translated_collection 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjhmNGQyNDhlNjIyZTc2YWE3NWJiZTI2ZDFiMjY3Yzg1M2U0OTk2Ng==
4
+ YmMxYzFmZGJhYmFmOWQ5MjkxOWQwYWJmNDRlMDFkNzBlYzFjMGQwMA==
5
5
  data.tar.gz: !binary |-
6
- NmE3NDg1YTJkNTE5MDhmODE4NGFjZjdiNmI2NjU4ZWUxMTk2ZjYwNA==
6
+ MTBjMjNkN2RhMDdhMmI2YTAyNGRjOGQ5MjhmZGExNjk1ZWJlMGI5MA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OWZlOGJhYzBhNWU2NzQ4ZDYyMzI0MWU5MjQ3ZmQ3ZmM0Yzg5YzM3MmQ5NmE2
10
- YzkzMDBkNTk2Y2Y3M2I2NmJjNDhjNTRiOWYzYzVkNjI2YTU4MWFhYTgzYTBk
11
- NTY4YWM3MTMyMjQ0YzU3Y2ZmNWI2NTcyMDQyOGRiOThkZDcxMzY=
9
+ ZDk2YWRiYzA3ZmUyMDJlZDEyNDI0OGJkMjc2ZWFkMWQwOTlhNDFjMjMwNGZk
10
+ ZDRiYTJlYTQ0MWExYzJkYjk2ZTE5ZTNkODUwY2QyZmI4Y2EyZTY2YjZhYjU3
11
+ ZTViYjIyOTM3Y2NiY2RhOGVlNDcxNTQ2ODMwMzI2N2FlMWExMjE=
12
12
  data.tar.gz: !binary |-
13
- MDU1YWY1MjFiNDgxOTBlNDZlOTk0NmU0YWQyNGQ3MWJiMTliNGYyODEwMTQ0
14
- MWQwMjQ4MTg3MmRlNDJhM2ZlNDA4YWJhOTIxMzcxMTAxOWFjYjM2M2QyNDAy
15
- ZjBhN2UzMTBkM2NjMjMyMGY1ZmM4YzRhNjZkOTMzODE5NjhmM2I=
13
+ MGRhMmQzNzQ2MzUxYjEwYjkzMzRiNjcyMzkwYmQ1MmZlMDM5YWM1NDg5Y2Ji
14
+ YzFhZTYxOTE2NWMyMTk0ZTNjYmQzNmU0YjM2Y2U3MzFmOGQ2MDMxNTI3NThm
15
+ ZmY3YjNjNTg5NjYyMTkwOGNkY2UzNGZiNmRkYmQ2Mjc1MWZjNzg=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- translated_collection (0.1.0)
4
+ translated_collection (0.1.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,3 +1,3 @@
1
1
  module TranslatedCollection
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -202,5 +202,12 @@ module TranslatedCollection
202
202
  _wrap_enumerator(@collection.reject!)
203
203
  end
204
204
  end
205
+
206
+ def map!(&blk)
207
+ @collection.map! {|x| @wrapfunc_in.call(blk.call(@wrapfunc_out.call(x))) }
208
+ @wrap_results ? self : self.to_a
209
+ end
210
+
211
+ alias :collect! :map!
205
212
  end
206
213
  end
@@ -20,6 +20,41 @@ describe TranslatedCollection::Wrapper do
20
20
  collection.map {|elt| upperfn.call(elt)}
21
21
  end
22
22
 
23
+ context 'duck API' do
24
+ context 'Enumerable methods' do
25
+ %w[all? any? as_json chunk collect collect_concat count cycle detect
26
+ drop drop_while each_cons each_entry each_slice each_with_index each_with_object
27
+ entries exclude? find find_all find_index first flat_map grep group_by
28
+ include? index_by inject many? map max max_by member? min min_by minmax
29
+ minmax_by none? one? partition reduce reject reverse_each select slice_before
30
+ sort sort_by sum take take_while to_a to_set zip].each do |meth|
31
+ it { should respond_to(meth) }
32
+ end
33
+ end
34
+
35
+ context 'Array-like methods' do
36
+ end
37
+
38
+ context 'Destructive update methods' do
39
+ %w[map! collect! clear push []= reject!].each do |meth|
40
+ it { should respond_to(meth) }
41
+ end
42
+
43
+ %w[compact! fill flatten! reverse! rotate! select! shuffle! slice! sort_by! sort! uniq!].each do |meth|
44
+ it "should implement #{meth}" do
45
+ pending "Not implemented yet"
46
+ end
47
+ end
48
+ end
49
+
50
+ context 'Conversion methods' do
51
+ %w[to_a to_set].each do |meth|
52
+ it { should respond_to(meth) }
53
+ end
54
+ end
55
+
56
+ end
57
+
23
58
  context 'creation' do
24
59
  let :collection do
25
60
  %w[a b C]
@@ -174,6 +209,22 @@ describe TranslatedCollection::Wrapper do
174
209
  subject.reject! {|x| x == Object.new }.should be_nil
175
210
  end
176
211
  end
212
+
213
+ context '#map!' do
214
+ it 'should yield each element in order, and return all' do
215
+ subject.map! {|elt| elt+elt}.to_a.should == %w[AA BB CC]
216
+ end
217
+
218
+ it 'should yield each element in order, and return all unwrapped if configured' do
219
+ subject.wrap_results = false
220
+ subject.map! {|elt| elt+elt}.should == %w[AA BB CC]
221
+ end
222
+
223
+ it 'should alter the original array' do
224
+ expect { subject.map! {|elt| elt+elt} }.
225
+ to change { subject.collection }.to %w[aa bb cc]
226
+ end
227
+ end
177
228
  end
178
229
 
179
230
  context 'Enumerable' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: translated_collection
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Sanders