Sha256: 0f161012c870b998fc689cc9846ced04d796e483182a405e55192f6395e38733

Contents?: true

Size: 1 KB

Versions: 18

Compression:

Stored size: 1 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/envs/command/exec_error'

module EacRubyUtils
  module Envs
    class Command
      class ExecuteResult
        attr_reader :r, :options

        def initialize(result, options)
          @r = result
          @options = options
        end

        def result
          return exit_code_zero_result if exit_code_zero?
          return expected_error_result if expected_error?

          raise ::EacRubyUtils::Envs::Command::ExecError, 'Failed!'
        end

        def success?
          exit_code_zero? || expected_error?
        end

        private

        def exit_code_zero?
          r[:exit_code]&.zero?
        end

        def exit_code_zero_result
          r[options[:output] || :stdout]
        end

        def expected_error_result
          options[:exit_outputs][r[:exit_code]]
        end

        def expected_error?
          options[:exit_outputs].is_a?(Hash) && options[:exit_outputs].key?(r[:exit_code])
        end
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
eac_tools-0.46.0 sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb
eac_tools-0.45.2 sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb
eac_tools-0.45.1 sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb
eac_tools-0.45.0 sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb
eac_ruby_utils-0.107.1 lib/eac_ruby_utils/envs/command/execute_result.rb
eac_tools-0.44.0 sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb
eac_tools-0.43.0 sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb
eac_ruby_utils-0.107.0 lib/eac_ruby_utils/envs/command/execute_result.rb
eac_tools-0.42.0 sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb
eac_tools-0.41.0 sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb
eac_tools-0.40.0 sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb
eac_tools-0.39.0 sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb
eac_ruby_utils-0.106.1 lib/eac_ruby_utils/envs/command/execute_result.rb
eac_ruby_utils-0.106.0 lib/eac_ruby_utils/envs/command/execute_result.rb
eac_tools-0.38.0 sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb
eac_tools-0.37.2 sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb
eac_ruby_utils-0.105.0 lib/eac_ruby_utils/envs/command/execute_result.rb
eac_tools-0.37.1 sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb