Sha256: f8fcd5f8b7ff4a33f5a702c580dba5b88da361378a2cc593b763137f25a692b8

Contents?: true

Size: 778 Bytes

Versions: 2

Compression:

Stored size: 778 Bytes

Contents

module LucidLocalOperation
  module Mixin
    def self.included(base)
      if RUBY_ENGINE != 'opal'
        Isomorfeus.add_valid_operation_class(base) unless base == LucidLocalOperation::Base

        def pub_sub_client
          Isomorfeus.pub_sub_client
        end
      end

      base.extend(LucidPropDeclaration::Mixin)
      base.extend(LucidOperation::Steps)
      base.include(LucidOperation::PromiseRun)

      base.instance_exec do
        def promise_run(props_hash = nil, props: nil)
          props_hash = props_hash || props
          validate_props(props_hash)
          self.new(props_hash).promise_run
        end
      end
    end

    attr_accessor :props
    attr_accessor :step_result

    def current_user
      Isomorfeus.current_user
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
isomorfeus-operation-1.0.0.zeta14 lib/isomorfeus_operation/lucid_local_operation/mixin.rb
isomorfeus-operation-1.0.0.zeta13 lib/isomorfeus_operation/lucid_local_operation/mixin.rb