merge_enum 0.1.0 → 0.2.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 +4 -4
- data/README.md +4 -4
- data/lib/merge_enum/extention/enumerable.rb +9 -0
- data/lib/merge_enum/merge_enumerable.rb +10 -1
- data/lib/merge_enum/version.rb +3 -1
- data/lib/merge_enum.rb +5 -2
- data/spec/merge_enum/extention/enumerable_spec.rb +39 -0
- data/spec/merge_enum/{merge_emunerable.rb → merge_enumerable_spec.rb} +43 -0
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38f7ffbcb61ff421a338c08cb2b01db4811f89eb
|
4
|
+
data.tar.gz: 21a2e709d217ea3eb7db6b6fc58a96d8f455356f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3d2a02cc175a108a19e39077aafe42ff1d46f82f8e7bbd879b7112524fd5a85f8cca72d0ede96e94282a0a29605ba1b2a78ca465bcf46a3c29059ff667a83ba
|
7
|
+
data.tar.gz: b1191ff673f06b96a7caebefa28ef527a561afc7a12d86554b5e5bcd3a65612810fedc276ea901a66c09ee764411fa7fa4987e20b68e32586d478236aeb2889d
|
data/README.md
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
# MergeEnum
|
2
2
|
|
3
|
-
複数のEnumerale
|
4
|
-
|
3
|
+
複数のEnumeraleを連結(合成)するEnumerableです。
|
4
|
+
要素が必要になった時点で追加するように動作します。
|
5
|
+
効率的なはずです。
|
5
6
|
|
6
7
|
## Installation
|
7
8
|
|
@@ -19,7 +20,6 @@ Or install it yourself as:
|
|
19
20
|
|
20
21
|
## Usage
|
21
22
|
|
22
|
-
> require 'merge_enum'
|
23
23
|
> m_enum = MergeEnum::MergeEnumerable.new(
|
24
24
|
[0,1,2,3,4,5,6,7,8,9],
|
25
25
|
10...20,
|
@@ -27,7 +27,7 @@ Or install it yourself as:
|
|
27
27
|
-> (c) { 30...40 }, # c => 25
|
28
28
|
Proc.new { 40...50 },
|
29
29
|
Proc.new { |c| 50...60 }, # c => 5
|
30
|
-
Proc.new { 70
|
30
|
+
Proc.new { 60...70 }, # => never called
|
31
31
|
first: 55
|
32
32
|
)
|
33
33
|
> m_enum.is_a? Enumerable
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# encoding: utf-8
|
2
2
|
module MergeEnum
|
3
3
|
|
4
4
|
class MergeEnumerable
|
@@ -40,6 +40,15 @@ module MergeEnum
|
|
40
40
|
self
|
41
41
|
end
|
42
42
|
|
43
|
+
def concat arg
|
44
|
+
self.class.new *@collections, arg, @options
|
45
|
+
end
|
46
|
+
|
47
|
+
def concat! arg
|
48
|
+
@collections.push arg
|
49
|
+
self
|
50
|
+
end
|
51
|
+
|
43
52
|
end
|
44
53
|
|
45
54
|
end
|
data/lib/merge_enum/version.rb
CHANGED
data/lib/merge_enum.rb
CHANGED
@@ -0,0 +1,39 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.expand_path(File.join('../../', 'spec_helper'), File.dirname(__FILE__))
|
3
|
+
|
4
|
+
describe Enumerable do
|
5
|
+
|
6
|
+
describe ":merge_enum Method" do
|
7
|
+
it "Enumerable" do
|
8
|
+
enm_1 = 0...100
|
9
|
+
enum = enm_1.to_a.merge_enum(
|
10
|
+
first: 200
|
11
|
+
)
|
12
|
+
expect(enum.count).to be 100
|
13
|
+
|
14
|
+
enum_2 = MergeEnum::MergeEnumerable.new(
|
15
|
+
enm_1,
|
16
|
+
first: 200
|
17
|
+
)
|
18
|
+
expect(enum.to_a).to eq(enum_2.to_a)
|
19
|
+
end
|
20
|
+
it "Enumerable, Proc, Lambda" do
|
21
|
+
enm_1 = 0...100
|
22
|
+
enm_2 = -> (c) { arg1 = c; 200...250 }
|
23
|
+
enm_3 = Proc.new { |c| arg2 = c; 300...330 }
|
24
|
+
enum = enm_1.to_a.merge_enum(
|
25
|
+
enm_2, enm_3,
|
26
|
+
first: 200
|
27
|
+
)
|
28
|
+
expect(enum.count).to be 180
|
29
|
+
|
30
|
+
enum_2 = MergeEnum::MergeEnumerable.new(
|
31
|
+
enm_1, enm_2, enm_3,
|
32
|
+
first: 200
|
33
|
+
)
|
34
|
+
expect(enum.to_a).to eq(enum_2.to_a)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
@@ -274,5 +274,48 @@ describe MergeEnum::MergeEnumerable do
|
|
274
274
|
end
|
275
275
|
end
|
276
276
|
|
277
|
+
describe ":concat Method" do
|
278
|
+
it "equality enumerator" do
|
279
|
+
enm_1 = 0...100
|
280
|
+
enm_2 = -> (c) { arg1 = c; 200...250 }
|
281
|
+
enm_3 = Proc.new { |c| arg2 = c; 300...330 }
|
282
|
+
enum = MergeEnum::MergeEnumerable.new(
|
283
|
+
enm_1, enm_2,
|
284
|
+
first: 130
|
285
|
+
)
|
286
|
+
expect(enum.concat enm_3).not_to be(enum)
|
287
|
+
|
288
|
+
enum_2 = MergeEnum::MergeEnumerable.new(
|
289
|
+
enm_1, enm_2, enm_3,
|
290
|
+
first: 130
|
291
|
+
)
|
292
|
+
expect(enum.concat(enm_3).to_a).to eq(enum_2.to_a)
|
293
|
+
end
|
294
|
+
end
|
295
|
+
|
296
|
+
describe ":concat! Method" do
|
297
|
+
it "equality enumerator" do
|
298
|
+
enm_1 = 0...100
|
299
|
+
enm_2 = -> (c) { arg1 = c; 200...250 }
|
300
|
+
enm_3 = Proc.new { |c| arg2 = c; 300...330 }
|
301
|
+
enum = MergeEnum::MergeEnumerable.new(
|
302
|
+
enm_1, enm_2,
|
303
|
+
first: 130
|
304
|
+
)
|
305
|
+
expect(enum.concat! enm_3).to be(enum)
|
306
|
+
|
307
|
+
enum = MergeEnum::MergeEnumerable.new(
|
308
|
+
enm_1, enm_2,
|
309
|
+
first: 130
|
310
|
+
)
|
311
|
+
|
312
|
+
enum_2 = MergeEnum::MergeEnumerable.new(
|
313
|
+
enm_1, enm_2, enm_3,
|
314
|
+
first: 130
|
315
|
+
)
|
316
|
+
expect(enum.concat!(enm_3).to_a).to eq(enum_2.to_a)
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
277
320
|
end
|
278
321
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: merge_enum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- brightgenerous
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -51,10 +51,12 @@ files:
|
|
51
51
|
- README.md
|
52
52
|
- Rakefile
|
53
53
|
- lib/merge_enum.rb
|
54
|
+
- lib/merge_enum/extention/enumerable.rb
|
54
55
|
- lib/merge_enum/merge_enumerable.rb
|
55
56
|
- lib/merge_enum/version.rb
|
56
57
|
- merge_enum.gemspec
|
57
|
-
- spec/merge_enum/
|
58
|
+
- spec/merge_enum/extention/enumerable_spec.rb
|
59
|
+
- spec/merge_enum/merge_enumerable_spec.rb
|
58
60
|
- spec/spec_helper.rb
|
59
61
|
homepage: ''
|
60
62
|
licenses:
|
@@ -81,5 +83,6 @@ signing_key:
|
|
81
83
|
specification_version: 4
|
82
84
|
summary: merge enumerable
|
83
85
|
test_files:
|
84
|
-
- spec/merge_enum/
|
86
|
+
- spec/merge_enum/extention/enumerable_spec.rb
|
87
|
+
- spec/merge_enum/merge_enumerable_spec.rb
|
85
88
|
- spec/spec_helper.rb
|