delayer-deferred 2.1.0 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 47f48d5f17c77e332acb35459c96404dbf89a8f29732a5cc31dd567b8369f245
4
- data.tar.gz: 2406941c8e57281fcb5f83fc029ec5e4925ca6cd891f6a6a84574f0144f81d13
3
+ metadata.gz: 480af4c09dcc44eb42d3b9c0cc0524a6ac41c5c3b40d0bcf36eeb6bfda22ce7f
4
+ data.tar.gz: 39b94a04b5a6081e5a37320461f957ca07f69fd87ae1aa19e440cfb4cc20ab82
5
5
  SHA512:
6
- metadata.gz: 2258ad255c3c43d5fc7bb365d297439b521174a2dfdc2856695a922de077cf1b2051d58248474e50c38148390c529ae9e9f17021849faf2b7ee73cb490d8beaf
7
- data.tar.gz: '00595199458480a541ee254736681101fb1008ce42e500b353d4229a7c9c77839d1d0ce116f46fb882b0d5c574a140157e101ac913d972ff1b61d6e1dcf51495'
6
+ metadata.gz: 6eda321b6639b2cb6ac638e9068c18cf82ac80ba78070c8dfce045e55d0fcd3d88467091905a9351622a385ac5b5ce32bc2b5b9b87a1b9fd826db2a89b772923
7
+ data.tar.gz: e869a145b9f6de42f278740f53514e37d37bda44255698229d059bd244c17275e42295d82321dd6d2736a0638b8ad17666e47e995a27e8838938c900572df879
@@ -14,8 +14,16 @@ module Delayer
14
14
  #真ならデバッグ情報を集める
15
15
  attr_accessor :debug
16
16
 
17
+ def new(*rest, name: caller_locations(1,1).first.to_s, &block)
18
+ super(*rest, name: name, &block)
19
+ end
20
+
17
21
  def method_missing(*rest, &block)
18
- Delayer::Deferred::Deferred.__send__(*rest, &block)
22
+ Delayer::Deferred::Promise.__send__(*rest, &block)
23
+ end
24
+
25
+ def respond_to_missing?(symbol, include_private)
26
+ Delayer::Deferred::Promise.respond_to?(symbol, include_private)
19
27
  end
20
28
  end
21
29
  end
@@ -32,8 +32,8 @@ module Delayer::Deferred
32
32
  # ==== Return
33
33
  # Deferred
34
34
  def when(*args)
35
- return self.next{[]} if args.empty?
36
35
  args = args.flatten
36
+ return self.next{ [].freeze } if args.empty?
37
37
  args.each_with_index{|d, index|
38
38
  unless d.is_a?(Deferredable::Chainable) || d.is_a?(Deferredable::Awaitable)
39
39
  raise TypeError, "Argument #{index} of Deferred.when must be #{Deferredable::Chainable}, but given #{d.class}"
@@ -47,6 +47,7 @@ module Delayer::Deferred
47
47
  [res, *follow.map{|d| +d }]
48
48
  }
49
49
  end
50
+
50
51
  # Kernel#systemを呼び出して、コマンドが成功たら成功するDeferredを返す。
51
52
  # 失敗した場合、trap{}ブロックには $? の値(Process::Status)か、例外が発生した場合それが渡される
52
53
  # ==== Args
@@ -1,5 +1,5 @@
1
1
  module Delayer
2
2
  module Deferred
3
- VERSION = "2.1.0"
3
+ VERSION = "2.1.1"
4
4
  end
5
5
  end
@@ -189,6 +189,18 @@ describe(Delayer::Deferred) do
189
189
  assert_empty result
190
190
  end
191
191
 
192
+ it "empty array given" do
193
+ result = failure = false
194
+ delayer = Delayer.generate_class
195
+ eval_all_events(delayer) do
196
+ delayer.Deferred.when([]).next{ |values|
197
+ result = values
198
+ }.trap{ |exception|
199
+ failure = exception } end
200
+ assert_equal false, failure
201
+ assert_empty result
202
+ end
203
+
192
204
  it "no deferred given for default delayer" do
193
205
  result = failure = false
194
206
  eval_all_events do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delayer-deferred
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toshiaki Asai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-01 00:00:00.000000000 Z
11
+ date: 2019-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: delayer
@@ -207,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
209
  requirements: []
210
- rubygems_version: 3.0.3
210
+ rubygems_version: 3.0.4
211
211
  signing_key:
212
212
  specification_version: 4
213
213
  summary: Deferred for Delayer