ActiveRecord::Promise (original) (raw)

Methods

P

T

V

Instance Public methods

Returns whether the associated query is still being executed or not.

Source: show | on GitHub

def pending? @future_result.pending? end

Returns a new ActiveRecord::Promise that will apply the passed block when the value is accessed:

Post.async_pick(:title).then { |title| title.upcase }.value
# => "POST TITLE"

Source: show | on GitHub

def then(&block) Promise.new(@future_result, @block ? @block >> block : block) end

Returns the query result. If the query wasn’t completed yet, accessing value will block until the query completes. If the query failed, value will raise the corresponding error.

Source: show | on GitHub

def value return @value if defined? @value

result = @future_result.result @value = if @block @block.call(result) else result end end