Sha256: cfd460206006d7e043977f37c932a3d9c674cdd51c469c35823b35cf3d8b2842

Contents?: true

Size: 1012 Bytes

Versions: 30

Compression:

Stored size: 1012 Bytes

Contents

# frozen_string_literal: true

require 'eac_cli/runner'
require 'eac_ruby_utils/core_ext'
require 'eac_ruby_utils/fs/traversable'

module EacRubyBase0
  module RunnerWith
    module Confirmation
      DEFAULT_CONFIRM_QUESTION_TEXT = 'Confirm?'

      common_concern do
        include ::EacCli::Runner
        enable_settings_provider
        enable_simple_cache
        runner_definition do
          bool_opt '--no', 'Deny confirmation without question.'
          bool_opt '--yes', 'Accept confirmation without question.'
        end
      end

      def confirm?(message = nil)
        return false if parsed.no?
        return true if parsed.yes?

        input(
          message || setting_value(:confirm_question_text, default: DEFAULT_CONFIRM_QUESTION_TEXT),
          bool: true
        )
      end

      def run_confirm(message = nil)
        yield if confirm?(message)
      end

      private

      def cached_confirm_uncached?(message = nil)
        confirm?(message)
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 3 rubygems

Version Path
eac_ruby_base0-0.13.0 lib/eac_ruby_base0/runner_with/confirmation.rb
avm-tools-0.110.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
avm-tools-0.109.1 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
avm-tools-0.109.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
ehbrs-tools-0.28.2 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
eac_ruby_base0-0.12.0 lib/eac_ruby_base0/runner_with/confirmation.rb
avm-tools-0.108.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
ehbrs-tools-0.28.1 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
avm-tools-0.107.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
eac_ruby_base0-0.11.0 lib/eac_ruby_base0/runner_with/confirmation.rb
ehbrs-tools-0.28.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
avm-tools-0.106.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
ehbrs-tools-0.27.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
ehbrs-tools-0.26.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
avm-tools-0.105.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
ehbrs-tools-0.25.1 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
ehbrs-tools-0.25.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
ehbrs-tools-0.24.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb
eac_ruby_base0-0.10.1 lib/eac_ruby_base0/runner_with/confirmation.rb
avm-tools-0.104.0 vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb