em-pg-client-helper 0.4.0 → 0.5.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.
@@ -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