Sha256: 2f599a1461e166b5d1a85e85d25a060ceaee49e1b5cee402a85419aab23d9576
Contents?: true
Size: 1.3 KB
Versions: 8
Compression:
Stored size: 1.3 KB
Contents
# frozen_string_literal: true module EacCli module Runner module InstanceMethods PARSER_ERROR_EXIT_CODE = 1 def run_run parsed run_callbacks(:run) { run } rescue ::EacCli::Parser::Error => e run_parser_error(e) rescue ::EacCli::Runner::Exit # rubocop:disable Lint/SuppressedException # Do nothing end def run_parser_error(error) $stderr.write("#{program_name}: #{error}\n") ::Kernel.exit(PARSER_ERROR_EXIT_CODE) 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.respond_to_call?(method) || super end def method_missing(method, *args, &block) return super unless runner_context.respond_to_call?(method) runner_context.call(method, *args, &block) end end end end
Version data entries
8 entries across 8 versions & 2 rubygems