Sha256: eb1ba0a7ce05a1a36a1d2a77cb79322329627a0bc5de056bf7f9341265c887b4

Contents?: true

Size: 1.03 KB

Versions: 7

Compression:

Stored size: 1.03 KB

Contents

module Timber
  class CLI
    module IOHelper
      def ask(message)
        write message + " "
        gets
      end

      def ask_yes_no(message)
        case ask(message + " (y/n)")
        when "y", "Y"
          :yes
        when "n", "N"
          :no
        else
          puts "Woops! That's not a valid input. Please try again."
          ask_yes_no(message)
        end
      end

      def colorize(text, color)
        return text if Gem.win_platform?

        code =
          case color
          when :blue then 34
          when :red then 31
          when :green then 32
          when :yellow then 33
          else 0
          end

        "\e[#{code}m#{text}\e[0m"
      end

      def gets
        value = stdin.gets
        value ? value.chomp.downcase : ""
      end

      def puts(message)
        stdout.puts(message)
      end

      def write(message)
        stdout.write(message)
      end

      private
        def stdout
          $stdout
        end

        def stdin
          $stdin
        end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
timber-2.0.7 lib/timber/cli/io_helper.rb
timber-2.0.6 lib/timber/cli/io_helper.rb
timber-2.0.5 lib/timber/cli/io_helper.rb
timber-2.0.4 lib/timber/cli/io_helper.rb
timber-2.0.3 lib/timber/cli/io_helper.rb
timber-2.0.2 lib/timber/cli/io_helper.rb
timber-2.0.1 lib/timber/cli/io_helper.rb