em-pg-client-helper 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -12,17 +12,15 @@ class PG::EM::Client::Helper::Transaction
12
12
  DeferrableGroup.new do |dg|
13
13
  @dg = dg
14
14
 
15
- df = conn.exec_defer("BEGIN").callback do
15
+ conn.exec_defer("BEGIN").callback do
16
16
  begin
17
17
  blk.call(self)
18
18
  rescue StandardError => ex
19
19
  rollback(ex)
20
20
  end
21
- end.errback { |ex| rollback(ex) }
22
-
23
- @dg.add(df)
21
+ end.errback { |ex| rollback(ex) }.tap { |df| @dg.add(df) }
24
22
  end.callback do
25
- rollback(RuntimeError.new("txn.commit was not called"))
23
+ rollback(RuntimeError.new("txn.commit was not called")) if @active
26
24
  end.errback do |ex|
27
25
  rollback(ex)
28
26
  end
@@ -36,12 +34,10 @@ class PG::EM::Client::Helper::Transaction
36
34
  #
37
35
  def commit
38
36
  if @active
39
- df = @conn.exec_defer("COMMIT").callback do
37
+ @conn.exec_defer("COMMIT").callback do
40
38
  @active = false
41
39
  self.succeed
42
- end.errback { |ex| rollback(ex) }
43
-
44
- @dg.add(df)
40
+ end.errback { |ex| rollback(ex) }.tap { |df| @dg.add(df) }
45
41
  end
46
42
  end
47
43
 
@@ -52,12 +48,10 @@ class PG::EM::Client::Helper::Transaction
52
48
  #
53
49
  def rollback(ex)
54
50
  if @active
55
- df = @conn.exec_defer("ROLLBACK") do
51
+ @conn.exec_defer("ROLLBACK") do
56
52
  @active = false
57
53
  self.fail(ex)
58
- end
59
-
60
- @dg.add(df)
54
+ end.tap { |df| @dg.add(df) }
61
55
  end
62
56
  end
63
57
 
@@ -76,16 +70,19 @@ class PG::EM::Client::Helper::Transaction
76
70
  # given block will be called if and when the query completes
77
71
  # successfully.
78
72
  #
73
+ # @returns [EM::Deferrable] A deferrable that will be completed when this
74
+ # specific query finishes.
75
+ #
79
76
  def exec(sql, values=[], &blk)
80
77
  unless @active
81
78
  raise RuntimeError,
82
79
  "Cannot execute a query in a transaction that has been closed"
83
80
  end
84
81
 
85
- @dg.add(
86
- @conn.exec_defer(sql, values).
87
- tap { |df| df.callback(&blk) if blk }
88
- )
82
+ @conn.exec_defer(sql, values).tap do |df|
83
+ @dg.add(df)
84
+ df.callback(&blk) if blk
85
+ end
89
86
  end
90
87
  alias_method :exec_defer, :exec
91
88
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: em-pg-client-helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -261,7 +261,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
261
261
  version: '0'
262
262
  segments:
263
263
  - 0
264
- hash: 3094102106018801704
264
+ hash: 472890837169152565
265
265
  required_rubygems_version: !ruby/object:Gem::Requirement
266
266
  none: false
267
267
  requirements:
@@ -270,7 +270,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
270
270
  version: '0'
271
271
  segments:
272
272
  - 0
273
- hash: 3094102106018801704
273
+ hash: 472890837169152565
274
274
  requirements: []
275
275
  rubyforge_project:
276
276
  rubygems_version: 1.8.23