em-dextras 0.3.0 → 0.4.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.
@@ -6,7 +6,7 @@ Gem::Specification.new do |gem|
6
6
  gem.email = ["public@rafaelferreira.net"]
7
7
  gem.description = %q{Utilities to help working with EventMachine deferrables.}
8
8
  gem.summary = %q{Utilities to help working with EventMachine Deferrables. Includes probes for asynchronous tests and a DSL to chain deferrables.}
9
- gem.homepage = ""
9
+ gem.homepage = "https://github.com/rafaeldff/em-dextras"
10
10
 
11
11
  gem.files = `git ls-files`.split($\)
12
12
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
@@ -161,6 +161,14 @@ module EMDextras
161
161
  end
162
162
 
163
163
  def self.call(stage, input, pipe_setup)
164
+ begin
165
+ do_call stage, input, pipe_setup
166
+ rescue => e
167
+ EMDextras::Chains::Deferrables.failed e
168
+ end
169
+ end
170
+
171
+ def self.do_call(stage, input, pipe_setup)
164
172
  todo_method = stage.method(:todo)
165
173
  arity = todo_method.arity
166
174
  if arity < 0 && pipe_setup.options[:context]
@@ -1,5 +1,5 @@
1
1
  module Em
2
2
  module Dextras
3
- VERSION = "0.3.0"
3
+ VERSION = "0.4.0"
4
4
  end
5
5
  end
@@ -34,6 +34,12 @@ describe EMDextras::Chains do
34
34
  end
35
35
  end
36
36
 
37
+ class RaisingExceptionStage
38
+ def todo(input)
39
+ raise StandardError, input.to_s
40
+ end
41
+ end
42
+
37
43
  class InvalidStage
38
44
  def todo(input)
39
45
  "not-a-deferrable"
@@ -156,7 +162,7 @@ describe EMDextras::Chains do
156
162
  end
157
163
 
158
164
  context "- monitoring -" do
159
- it "should notify monitoring of any exceptions" do
165
+ it "should notify monitoring of any failure" do
160
166
  EM.run do
161
167
  EMDextras::Chains.pipe("anything", monitoring, [ErrorStage.new]);
162
168
 
@@ -164,6 +170,14 @@ describe EMDextras::Chains do
164
170
  end
165
171
  end
166
172
 
173
+ it "should notify monitoring of any exception" do
174
+ EM.run do
175
+ EMDextras::Chains.pipe("will raise", monitoring, [RaisingExceptionStage.new]);
176
+
177
+ monitoring.received_call!(:inform_exception!, any_args)
178
+ end
179
+ end
180
+
167
181
  it "should pass the context to monitoring.inform_exception if given" do
168
182
  EM.run do
169
183
  error_stage = ErrorStage.new
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: em-dextras
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-29 00:00:00.000000000 Z
12
+ date: 2013-05-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: eventmachine
@@ -164,7 +164,7 @@ files:
164
164
  - spec/em-dextras/spec/spec_matchers_spec.rb
165
165
  - spec/em-dextras/spec/spy_spec.rb
166
166
  - spec/spec_helper.rb
167
- homepage: ''
167
+ homepage: https://github.com/rafaeldff/em-dextras
168
168
  licenses: []
169
169
  post_install_message:
170
170
  rdoc_options: []