Sha256: c7272473a3aef8e822296bbd31213c45d2148b4fe934c109cf85f8bccc8ec51a

Contents?: true

Size: 862 Bytes

Versions: 34

Compression:

Stored size: 862 Bytes

Contents

class LucidSimpleOperation
  extend Preact::PropDeclarationMixin
  extend Isomorfeus::Operation::GenericClassApi

  class << self
    if RUBY_ENGINE == 'opal'
      def op; end
    else
      def inherited(base)
        Isomorfeus.add_valid_operation_class(base)
      end

      def op(&block)
        @op = block
      end
    end
  end

  attr_reader :props

  def initialize(**props_hash)
    @props = self.class.validated_props(props_hash)
  end

  def promise_run
    original_promise = Promise.new

    operation = self
    promise = original_promise.then do |_|
      operation.instance_exec(&operation.class.instance_variable_get(:@op))
    end

    original_promise.resolve
    promise
  end

  def current_user
    Isomorfeus.current_user
  end

  def pub_sub_client
    Isomorfeus.pub_sub_client
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
isomorfeus-operation-23.9.0.rc7 lib/lucid_simple_operation.rb
isomorfeus-operation-23.9.0.rc6 lib/lucid_simple_operation.rb
isomorfeus-operation-23.9.0.rc5 lib/lucid_simple_operation.rb
isomorfeus-operation-23.9.0.rc4 lib/lucid_simple_operation.rb
isomorfeus-operation-23.9.0.rc3 lib/lucid_simple_operation.rb
isomorfeus-operation-23.9.0.rc2 lib/lucid_simple_operation.rb
isomorfeus-operation-23.9.0.rc1 lib/lucid_simple_operation.rb
isomorfeus-operation-23.8.0.rc3 lib/lucid_simple_operation.rb
isomorfeus-operation-23.8.0.rc2 lib/lucid_simple_operation.rb
isomorfeus-operation-23.8.0.rc1 lib/lucid_simple_operation.rb
isomorfeus-operation-23.7.0.rc5 lib/lucid_simple_operation.rb
isomorfeus-operation-23.7.0.rc4 lib/lucid_simple_operation.rb
isomorfeus-operation-23.7.0.rc3 lib/lucid_simple_operation.rb
isomorfeus-operation-23.7.0.rc2 lib/lucid_simple_operation.rb
isomorfeus-operation-23.7.0.rc1 lib/lucid_simple_operation.rb
isomorfeus-operation-23.6.0.rc5 lib/lucid_simple_operation.rb
isomorfeus-operation-23.6.0.rc4 lib/lucid_simple_operation.rb
isomorfeus-operation-23.6.0.rc3 lib/lucid_simple_operation.rb
isomorfeus-operation-23.6.0.rc2 lib/lucid_simple_operation.rb
isomorfeus-operation-23.6.0.rc1 lib/lucid_simple_operation.rb