Sha256: b004a86b45e56abc26a3324b7125584b616e88263fbc74f861d548ad237fd51a

Contents?: true

Size: 1.09 KB

Versions: 8

Compression:

Stored size: 1.09 KB

Contents

require 'highline'

module Dkdeploy
  module Helpers
    # common helpers, which are not task specific
    module Common
      def terminal
        @terminal ||= HighLine.new
      end

      def ask_via_terminal(question_selector, &block)
        question = I18n.t(question_selector, scope: :dkdeploy)
        answer = terminal.ask(question, &block)
        String.new(answer)
      end

      def ask_variable(args, variable_name_symbol, question_selector, &block)
        ENV[variable_name_symbol.to_s.upcase] || args[variable_name_symbol] ||
          fetch(variable_name_symbol) || ask_via_terminal(question_selector, &block)
      end

      def ask_array_variable(args, variable_name_symbol, question_selector, &block)
        variable_content = ask_variable(args, variable_name_symbol, question_selector, &block)
        return variable_content if variable_content.is_a?(Array)
        return variable_content.split if variable_content.is_a?(String)

        raise(I18n.t('errors.variable_content_is_neither_string_nor_array', variable_name: variable_name_symbol, scope: :dkdeploy))
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
dkdeploy-core-9.1.1 lib/dkdeploy/helpers/common.rb
dkdeploy-core-9.0.1 lib/dkdeploy/helpers/common.rb
dkdeploy-core-8.0.2 lib/dkdeploy/helpers/common.rb
dkdeploy-core-9.2.1 lib/dkdeploy/helpers/common.rb
dkdeploy-core-9.1.0 lib/dkdeploy/helpers/common.rb
dkdeploy-core-9.0.0 lib/dkdeploy/helpers/common.rb
dkdeploy-core-8.0.1 lib/dkdeploy/helpers/common.rb
dkdeploy-core-8.0.0 lib/dkdeploy/helpers/common.rb