module DeferrableGratification::Primitives
Trivial operations which return Deferrables.
Used internally by the library, and may be useful in cases where you need to return a Deferrable to keep API compatibility but the result is already available.
{DeferrableGratification} extends this module, and thus the methods here are accessible via the {DG} alias.
Public Instance Methods
blank()
click to toggle source
Return a completely uninteresting Deferrable.
# File lib/deferrable_gratification/primitives.rb, line 53 def blank DeferrableGratification::DefaultDeferrable.new end
const(value)
click to toggle source
Return a Deferrable which immediately succeeds, passing a constant value to callbacks.
# File lib/deferrable_gratification/primitives.rb, line 23 def const(value) success(value) end
failure(exception_class_or_message, message_or_nil = nil)
click to toggle source
Return a Deferrable which immediately fails with an exception.
@overload failure(message)
Passes +RuntimeError.new(message)+ to errbacks.
@overload failure(exception_class)
Passes +exception_class.new+ to errbacks.
@overload failure(exception_class, message)
Passes +exception_class.new(message)+ to errbacks.
@overload failure(exception)
Passes +exception+ to errbacks.
# File lib/deferrable_gratification/primitives.rb, line 37 def failure(exception_class_or_message, message_or_nil = nil) blank.tap do |d| d.fail( case exception_class_or_message when Exception raise ArgumentError, "can't specify both exception and message" if message_or_nil exception_class_or_message when Class exception_class_or_message.new(message_or_nil) else RuntimeError.new(exception_class_or_message.to_s) end) end end
success(*values)
click to toggle source
Return a Deferrable which immediately succeeds, passing 0 or more values to callbacks.
# File lib/deferrable_gratification/primitives.rb, line 17 def success(*values) blank.tap {|d| d.succeed(*values) } end