Sha256: eb861ff83dff00e4d58b3f4535658c262e969cbd470c44008f928437589176de

Contents?: true

Size: 1.38 KB

Versions: 169

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true

require 'eac_cli/runner'
require 'eac_ruby_utils/core_ext'
require 'eac_ruby_utils/abstract_methods'

module EacRubyBase0
  module RunnerWith
    module Output
      STDOUT_OPTION = '-'
      DEFAULT_FILE_OPTION = '+'
      DEFAULT_DEFAULT_OUTPUT_OPTION = STDOUT_OPTION
      DEFAULT_DEFAULT_FILE_TO_OUTPUT = 'output'

      common_concern do
        enable_abstract_methods
        enable_settings_provider
        include ::EacCli::Runner

        abstract_methods :output_content

        runner_definition do
          arg_opt '-o', '--output', 'Output to file.'
        end
      end

      def run_output
        file = file_to_output
        if file
          file.to_pathname.write(output_content)
        else
          $stdout.write(output_content)
        end
      end

      def output_option
        parsed.output || default_output_option_value
      end

      def file_to_output
        case output_option
        when STDOUT_OPTION then nil
        when DEFAULT_FILE_OPTION then default_file_to_output_value
        else output_option
        end
      end

      def default_output_option_value
        setting_value(:default_output_option,
                      default: DEFAULT_DEFAULT_OUTPUT_OPTION)
      end

      def default_file_to_output_value
        setting_value(:default_file_to_output, default: DEFAULT_DEFAULT_FILE_TO_OUTPUT)
      end
    end
  end
end

Version data entries

169 entries across 169 versions & 4 rubygems

Version Path
eac_tools-0.61.1 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.61.0 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.60.3 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.60.2 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.60.1 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.60.0 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.59.0 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.58.0 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.57.0 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.56.1 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.56.0 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.55.7 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.55.6 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.55.5 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.55.4 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.55.3 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.55.2 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb
eac_ruby_base0-0.17.3 lib/eac_ruby_base0/runner_with/output.rb
eac_ruby_base0-0.17.2 lib/eac_ruby_base0/runner_with/output.rb
eac_tools-0.55.1 sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb