Sha256: 2ddcaa74782b80fce38871606dcb60ca39a5a16601c7c4bde585a4d9ce0c19f9

Contents?: true

Size: 1.05 KB

Versions: 57

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

require 'eac_cli/speaker'
require 'eac_ruby_utils/speaker'

module EacCli
  module Runner
    module AfterClassMethods
      def create(*runner_context_args)
        r = new
        r.runner_context = ::EacCli::Runner::Context.new(r, *runner_context_args)
        r
      end

      def run(*runner_context_args)
        on_asserted_speaker do
          r = create(*runner_context_args)
          r.run_run
          r
        end
      end

      def runner_definition(&block)
        @runner_definition ||= super_runner_definition
        @runner_definition.instance_eval(&block) if block
        @runner_definition
      end

      def super_runner_definition
        superclass.try(:runner_definition).if_present(&:dup) || ::EacCli::Definition.new
      end

      private

      def on_asserted_speaker
        if ::EacRubyUtils::Speaker.context.optional_current
          yield
        else
          ::EacRubyUtils::Speaker.context.on(::EacCli::Speaker.new) do
            yield
          end
        end
      end
    end
  end
end

Version data entries

57 entries across 57 versions & 3 rubygems

Version Path
avm-tools-0.117.0 sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb
avm-tools-0.116.2 sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb
eac_cli-0.27.3 lib/eac_cli/runner/after_class_methods.rb
avm-tools-0.116.1 sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb
eac_cli-0.27.2 lib/eac_cli/runner/after_class_methods.rb
avm-tools-0.116.0 sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb
eac_cli-0.27.1 lib/eac_cli/runner/after_class_methods.rb
avm-tools-0.115.0 sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb
eac_cli-0.27.0 lib/eac_cli/runner/after_class_methods.rb
avm-tools-0.114.2 sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb
avm-tools-0.114.1 sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb
eac_cli-0.26.2 lib/eac_cli/runner/after_class_methods.rb
avm-tools-0.114.0 sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb
eac_cli-0.26.1 lib/eac_cli/runner/after_class_methods.rb
eac_cli-0.26.0 lib/eac_cli/runner/after_class_methods.rb
avm-tools-0.113.6 sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb
avm-tools-0.113.5 sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb
eac_cli-0.25.0 lib/eac_cli/runner/after_class_methods.rb
avm-tools-0.113.4 sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb
avm-tools-0.113.3 sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb