Sha256: 8b39e9f6ce9d27b2c041786b11e4565a32aca369d6a3163f6602c45d2e7ff97f

Contents?: true

Size: 1.07 KB

Versions: 14

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

module EacCli
  module Runner
    module InstanceMethods
      def run_run
        parsed
        run_callbacks(:run) { run }
      rescue ::EacCli::Runner::Exit
        # Do nothing
      end

      def runner_context
        return @runner_context if @runner_context

        raise 'Context was required, but was not set yet'
      end

      def runner_context=(new_runner_context)
        @runner_context = new_runner_context
        @parsed = nil
      end

      def parsed
        @parsed ||= ::EacCli::Parser.new(self.class.runner_definition, runner_context.argv).parsed
      end

      def program_name
        runner_context.if_present(&:program_name) || $PROGRAM_NAME
      end

      def respond_to_missing?(method, include_all = false)
        runner_context.runner_missing_method_responder(method).callable? || super
      end

      def method_missing(method, *args, &block)
        runner_context.runner_missing_method_responder(method).if_callable do |v|
          return v.call(*args, &block)
        end

        super
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
eac_cli-0.42.0 lib/eac_cli/runner/instance_methods.rb
eac_cli-0.40.1 lib/eac_cli/runner/instance_methods.rb
eac_cli-0.40.0 lib/eac_cli/runner/instance_methods.rb
eac_cli-0.39.0 lib/eac_cli/runner/instance_methods.rb
eac_cli-0.38.1 lib/eac_cli/runner/instance_methods.rb
eac_tools-0.82.0 sub/eac_cli/lib/eac_cli/runner/instance_methods.rb
eac_tools-0.81.0 sub/eac_cli/lib/eac_cli/runner/instance_methods.rb
eac_tools-0.80.0 sub/eac_cli/lib/eac_cli/runner/instance_methods.rb
eac_tools-0.79.0 sub/eac_cli/lib/eac_cli/runner/instance_methods.rb
eac_tools-0.78.0 sub/eac_cli/lib/eac_cli/runner/instance_methods.rb
eac_tools-0.77.1 sub/eac_cli/lib/eac_cli/runner/instance_methods.rb
eac_tools-0.77.0 sub/eac_cli/lib/eac_cli/runner/instance_methods.rb
eac_cli-0.38.0 lib/eac_cli/runner/instance_methods.rb
eac_tools-0.76.1 sub/eac_cli/lib/eac_cli/runner/instance_methods.rb