Sha256: 38cf5299b0decd27b535821bf8cfd02d67d2eff53ab710d0a7582ba022f97aac

Contents?: true

Size: 1.23 KB

Versions: 19

Compression:

Stored size: 1.23 KB

Contents

module Geordi
  module Interaction

    def announce(text)
      message = "\n# #{text}"
      puts "\e[4;34m#{message}\e[0m" # blue underline
    end

    def note(text)
      puts '> ' + text
    end

    def warn(text)
      message = "> #{text}"
      puts "\e[33m#{message}\e[0m" # yellow
    end

    def note_cmd(text)
      message = "> #{text}"
      puts "\e[35m#{message}\e[0m" # pink
    end

    def fail(text)
      message = "\nx #{text}"
      puts "\e[31m#{message}\e[0m" # red
      exit(1)
    end

    def success(text)
      message = "\n> #{text}"
      puts "\e[32m#{message}\e[0m" # green
    end

    def strip_heredoc(string)
      leading_whitespace = (string.match(/\A( +)[^ ]+/) || [])[1]
      string.gsub! /^#{leading_whitespace}/, '' if leading_whitespace
      string
    end

    # Returns the user's input.
    # If agreement_regex is given, returns whether the input matches the regex.
    def prompt(text, default = nil, agreement_regex = nil)
      message = "#{text} "
      message << "[#{default}] " if default

      print "\e[36m#{message}\e[0m" # cyan
      input = $stdin.gets.strip
      input = default if input.empty? && default

      agreement_regex ? !!(input =~ agreement_regex) : input
    end

  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
geordi-1.8.0 lib/geordi/interaction.rb
geordi-1.7.1 lib/geordi/interaction.rb
geordi-1.7.0 lib/geordi/interaction.rb
geordi-1.6.5 lib/geordi/interaction.rb
geordi-1.6.4 lib/geordi/interaction.rb
geordi-1.6.3 lib/geordi/interaction.rb
geordi-1.6.2 lib/geordi/interaction.rb
geordi-1.6.1 lib/geordi/interaction.rb
geordi-1.6.0 lib/geordi/interaction.rb
geordi-1.5.2 lib/geordi/interaction.rb
geordi-1.5.1 lib/geordi/interaction.rb
geordi-1.5.0 lib/geordi/interaction.rb
geordi-1.4.3 lib/geordi/interaction.rb
geordi-1.4.2 lib/geordi/interaction.rb
geordi-1.4.1 lib/geordi/interaction.rb
geordi-1.4.0 lib/geordi/interaction.rb
geordi-1.3.2 lib/geordi/interaction.rb
geordi-1.3.1 lib/geordi/interaction.rb
geordi-1.3.0 lib/geordi/interaction.rb