kaki-utils 0.0.6 → 0.0.7

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/kaki/utils/nest_loop.rb +14 -13
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2d7db20129e1dc41195fd4b6675db599fd586a39
4
- data.tar.gz: 681cd384429c4e953256ba07d0121ac7ca402152
3
+ metadata.gz: d44a23d9124c3edf3b8ccc3de112cdf23db70a56
4
+ data.tar.gz: f0d28dc4ea72f7ad823c7a659f7ca597497729bc
5
5
  SHA512:
6
- metadata.gz: c8c907487eda8a5f000aeb97efd63ba62db2d0dbf71cbb8fd5df50ef61cf7f8e435575ad7868cb4bb06e36ba36ba88fc67bdb62d602617f18b6a896991b0619b
7
- data.tar.gz: 1274578694dfc77ea3da86a6d6d8e72e4d5129027e1812f3fc4c5262c24b2b54b1adb599b8b07425389d731a8261f713ce1420bb0ee1c3cb57596b57a1c03a95
6
+ metadata.gz: bda104aa5d9236c72ba0b0d203f57b8ef637c39cb3539a376313adb3ee2b07923abf31f493657abdf0b12ba12ceace68104b21e518bca19b5c5547924a33a26e
7
+ data.tar.gz: d1da3dd3b2862ee545316e26d2c9b3aee1e368c1700264f0a0355b6dd7be1de020b6eca000fcccf8f3da70dd50b44f753e28293f2b35de875e69da4c45274466
data/README.md CHANGED
@@ -60,4 +60,4 @@ require "kaki/utils/nest_loop"
60
60
  ```
61
61
  method
62
62
 
63
- * Array#nest\_loop
63
+ * Enumerable#nest\_loop
@@ -1,5 +1,5 @@
1
- class Array
2
- #任意の階層だけ繰り返しを行う
1
+ module Enumerable
2
+ #任意の階層だけ繰り返しを行い、ブロックの返り値を順に配列に入れて返す。ブロックが与えられていなければ Enumerator を返す。
3
3
  # @return [Array]
4
4
  def nest_loop
5
5
  check = lambda do |obj|
@@ -7,19 +7,20 @@ class Array
7
7
  obj
8
8
  end
9
9
 
10
- result = []
11
- ns = lambda do |ax, args|
12
- a, ax = ax.first, ax.drop(1)
13
- for i in check.call(a)
14
- nxt = args + [i]
15
- if ax.empty?
16
- result << yield(nxt)
17
- else
18
- ns.call(ax, nxt)
10
+ e = Enumerator.new do |y|
11
+ ns = lambda do |ax, args|
12
+ a, ax = ax.first, ax.drop(1)
13
+ for i in check.call(a)
14
+ nxt = args + [i]
15
+ if ax.empty?
16
+ y << nxt
17
+ else
18
+ ns.call(ax, nxt)
19
+ end
19
20
  end
20
21
  end
22
+ ns.call(self, [])
21
23
  end
22
- ns.call(self, [])
23
- result
24
+ block_given? ? e.each.with_object([]) {|i, h| h << yield(i)} : e
24
25
  end
25
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kaki-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - obelisk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-06 00:00:00.000000000 Z
11
+ date: 2018-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gtk2