Sha256: 9299c26320ed1704900fde0aefc5c250c627423b3600691bbe65e7ef89e79228

Contents?: true

Size: 1.76 KB

Versions: 11

Compression:

Stored size: 1.76 KB

Contents

# frozen_string_literal: true

module LucidOperation
  module Mixin
    def self.included(base)
      base.extend(LucidPropDeclaration::Mixin)
      base.extend(LucidOperation::Steps)
      base.extend(Isomorfeus::Operation::GenericClassApi)

      if RUBY_ENGINE == 'opal'
        def procedure(gherkin_text)
        end

        def steps
        end
        alias :gherkin :steps
        alias :ensure_steps :steps
        alias :failure_steps :steps
        alias :Given :steps
        alias :And :steps
        alias :Then :steps
        alias :When :steps
        alias :Ensure :steps
        alias :Failed :steps
        alias :If_failing :steps
        alias :When_failing :steps
        alias :If_this_failed :steps
        alias :If_that_failed :steps

        def First(regular_expression, &block)
          Isomorfeus.raise_error(message: "#{self}: First already defined, can only be defined once!") if @first_defined
          @first_defined = true
        end

        def Finally(regular_expression, &block)
          Isomorfeus.raise_error(message: "#{self}: Finally already defined, can only be defined once!") if @finally_defined
          @finally_defined = true
        end
      else
        Isomorfeus.add_valid_operation_class(base) unless base == LucidOperation::Base
        base.include(LucidOperation::PromiseRun)

        attr_reader :props
        attr_accessor :step_result

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

        def current_user
          Isomorfeus.current_user
        end

        def pub_sub_client
          Isomorfeus.pub_sub_client
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
isomorfeus-operation-2.5.5 lib/isomorfeus_operation/lucid_operation/mixin.rb
isomorfeus-operation-2.5.4 lib/isomorfeus_operation/lucid_operation/mixin.rb
isomorfeus-operation-2.5.3 lib/isomorfeus_operation/lucid_operation/mixin.rb
isomorfeus-operation-2.5.2 lib/isomorfeus_operation/lucid_operation/mixin.rb
isomorfeus-operation-2.5.1 lib/isomorfeus_operation/lucid_operation/mixin.rb
isomorfeus-operation-2.5.0 lib/isomorfeus_operation/lucid_operation/mixin.rb
isomorfeus-operation-2.4.2 lib/isomorfeus_operation/lucid_operation/mixin.rb
isomorfeus-operation-2.4.1 lib/isomorfeus_operation/lucid_operation/mixin.rb
isomorfeus-operation-2.4.0 lib/isomorfeus_operation/lucid_operation/mixin.rb
isomorfeus-operation-2.3.1 lib/isomorfeus_operation/lucid_operation/mixin.rb
isomorfeus-operation-2.3.0 lib/isomorfeus_operation/lucid_operation/mixin.rb