class PG::EM::FeaturedDeferrable
Deferrable with error protectors
- Author
-
Rafal Michalski
Public Class Methods
new(&blk)
click to toggle source
# File lib/pg/em/featured_deferrable.rb, line 9 def initialize(&blk) completion(&blk) if block_given? end
Public Instance Methods
bind_status(df)
click to toggle source
bind deferred status of this deferrable to other df
# File lib/pg/em/featured_deferrable.rb, line 36 def bind_status(df) df.callback { |*a| succeed(*a) } df.errback { |*a| fail(*a) } end
completion(&blk)
click to toggle source
# File lib/pg/em/featured_deferrable.rb, line 13 def completion(&blk) callback(&blk) errback(&blk) end
protect(fail_value = nil) { || ... }
click to toggle source
# File lib/pg/em/featured_deferrable.rb, line 18 def protect(fail_value = nil) yield rescue Exception => e ::EM.next_tick { fail e } fail_value end
protect_and_succeed(fail_value = nil) { || ... }
click to toggle source
# File lib/pg/em/featured_deferrable.rb, line 25 def protect_and_succeed(fail_value = nil) ret = yield rescue Exception => e ::EM.next_tick { fail e } fail_value else ::EM.next_tick { succeed ret } ret end