Sha256: e49d03d70f219a7e78112bd65f563e2449dd32c343c6ce21dc283ab42ad6f356

Contents?: true

Size: 1.38 KB

Versions: 40

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/acts_as_abstract'

module EacCli
  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

40 entries across 40 versions & 2 rubygems

Version Path
eac_cli-0.42.0 lib/eac_cli/runner_with/output.rb
eac_cli-0.40.1 lib/eac_cli/runner_with/output.rb
eac_cli-0.40.0 lib/eac_cli/runner_with/output.rb
eac_cli-0.39.0 lib/eac_cli/runner_with/output.rb
eac_cli-0.38.1 lib/eac_cli/runner_with/output.rb
eac_tools-0.82.0 sub/eac_cli/lib/eac_cli/runner_with/output.rb
eac_tools-0.81.0 sub/eac_cli/lib/eac_cli/runner_with/output.rb
eac_tools-0.80.0 sub/eac_cli/lib/eac_cli/runner_with/output.rb
eac_tools-0.79.0 sub/eac_cli/lib/eac_cli/runner_with/output.rb
eac_tools-0.78.0 sub/eac_cli/lib/eac_cli/runner_with/output.rb
eac_tools-0.77.1 sub/eac_cli/lib/eac_cli/runner_with/output.rb
eac_tools-0.77.0 sub/eac_cli/lib/eac_cli/runner_with/output.rb
eac_cli-0.38.0 lib/eac_cli/runner_with/output.rb
eac_tools-0.76.1 sub/eac_cli/lib/eac_cli/runner_with/output.rb
eac_tools-0.76.0 sub/eac_cli/lib/eac_cli/runner_with/output.rb
eac_tools-0.75.2 sub/eac_cli/lib/eac_cli/runner_with/output.rb
eac_cli-0.37.0 lib/eac_cli/runner_with/output.rb
eac_tools-0.75.1 sub/eac_cli/lib/eac_cli/runner_with/output.rb
eac_tools-0.75.0 sub/eac_cli/lib/eac_cli/runner_with/output.rb
eac_tools-0.74.1 sub/eac_cli/lib/eac_cli/runner_with/output.rb