Sha256: a5e628c9d83207d1e4fc6601a8f54f3a3c3d022eaf36b2ed5af04781f8440371

Contents?: true

Size: 749 Bytes

Versions: 4

Compression:

Stored size: 749 Bytes

Contents

class Trix.Operation extends Trix.BasicObject
  isPerforming: ->
    @performing is true

  hasPerformed: ->
    @performed is true

  hasSucceeded: ->
    @performed and @succeeded

  hasFailed: ->
    @performed and not @succeeded

  getPromise: ->
    @promise ?= new Promise (resolve, reject) =>
      @performing = true
      @perform (@succeeded, result) =>
        @performing = false
        @performed = true

        if @succeeded
          resolve(result)
        else
          reject(result)

  perform: (callback) ->
    callback(false)

  release: ->
    @promise?.cancel?()
    @promise = null
    @performing = null
    @performed = null
    @succeeded = null

  @proxyMethod "getPromise().then"
  @proxyMethod "getPromise().catch"

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vapid-0.1.3 lib/vapid/vendor/trix/src/trix/core/utilities/operation.coffee
vapid-0.1.2 lib/vapid/vendor/trix/src/trix/core/utilities/operation.coffee
vapid-0.1.1 lib/vapid/vendor/trix/src/trix/core/utilities/operation.coffee
vapid-0.1.0 lib/vapid/vendor/trix/src/trix/core/utilities/operation.coffee