emdrb 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,6 @@
1
+ == 0.4.2 / 2009-04-22
2
+ * Fix exception propagation for local deferrable methods
3
+
1
4
  == 0.4.1 / 2009-04-21
2
5
  * Bug in calling deferrable methods from a local object now fixed
3
6
 
@@ -5,7 +5,7 @@
5
5
  # Homepage:: http://emdrb.rubyforge.org/
6
6
  # License:: GNU General Public License / Ruby License
7
7
  #
8
- # $Id: emdrb.rb 129 2009-04-21 03:21:07Z dido $
8
+ # $Id: emdrb.rb 135 2009-04-22 03:51:32Z dido $
9
9
  #
10
10
  #----------------------------------------------------------------------------
11
11
  #
@@ -843,19 +843,19 @@ module DRb
843
843
  def send_async(msg_id, *a, &b)
844
844
  df = EventMachine::DefaultDeferrable.new
845
845
  if DRb.here?(@uri)
846
- obj = DRb.to_obj(@ref)
847
- DRb.current_server.check_insecure_method(obj, msg_id)
848
- if obj.kind_of?(DRbEMSafe) && obj.class.deferrable_method?(msg_id)
849
- # If the method is a deferrable, calling the method will itself
850
- # return a deferrable by definition, and we should be using this
851
- # deferrable to determine whether the call succeeded or failed.
852
- df = obj.__send__(msg_id, *a, &b)
853
- else
854
- begin
846
+ obj = DRb.to_obj(@ref)
847
+ DRb.current_server.check_insecure_method(obj, msg_id)
848
+ begin
849
+ if obj.kind_of?(DRbEMSafe) && obj.class.deferrable_method?(msg_id)
850
+ # If the method is a deferrable, calling the method will itself
851
+ # return a deferrable by definition, and we should be using this
852
+ # deferrable to determine whether the call succeeded or failed.
853
+ df = obj.__send__(msg_id, *a, &b)
854
+ else
855
855
  df.succeed(obj.__send__(msg_id, *a, &b))
856
- rescue
857
- df.fail($!)
858
856
  end
857
+ rescue
858
+ df.fail($!)
859
859
  end
860
860
  return(df)
861
861
  end
@@ -4,7 +4,7 @@
4
4
  # Homepage:: http://emdrb.rubyforge.org/
5
5
  # License:: GNU Lesser General Public License / Ruby License
6
6
  #
7
- # $Id: version.rb 130 2009-04-21 03:21:53Z dido $
7
+ # $Id: version.rb 137 2009-04-22 03:53:11Z dido $
8
8
  #
9
9
  #----------------------------------------------------------------------------
10
10
  #
@@ -22,5 +22,5 @@
22
22
  # EMDRb version code
23
23
  #
24
24
  module EMDRb
25
- VERSION = "0.4.1"
25
+ VERSION = "0.4.2"
26
26
  end
@@ -5,7 +5,7 @@
5
5
  # Homepage:: http://emdrb.rubyforge.org/
6
6
  # License:: GNU General Public License / Ruby License
7
7
  #
8
- # $Id: emdrb_spec.rb 128 2009-04-21 03:15:04Z dido $
8
+ # $Id: emdrb_spec.rb 136 2009-04-22 03:52:14Z dido $
9
9
  #
10
10
  #----------------------------------------------------------------------------
11
11
  #
@@ -33,6 +33,10 @@ class LocalDeferrable
33
33
  return(df)
34
34
  end
35
35
 
36
+ def df_tester_exception
37
+ raise "test exception"
38
+ end
39
+
36
40
  deferrable_method :df_tester
37
41
  end
38
42
 
@@ -110,6 +114,8 @@ describe EMDRb do
110
114
 
111
115
  it "should call local deferrables correctly" do
112
116
  @obj2.df_tester(1).should == 2
117
+ lambda { @obj2.df_tester_exception }.should raise_error(RuntimeError,
118
+ "test exception")
113
119
  end
114
120
  end
115
121
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emdrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - dido@imperium.ph
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-21 00:00:00 +08:00
12
+ date: 2009-04-22 00:00:00 +08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency