class BBFlow::Printer

Public Class Methods

ask(question) click to toggle source

@param [String] question

@return [String] answer

# File lib/bb_flow/printer.rb, line 7
def ask(question)
  puts
  note(question)
  print('> ')
  gets.strip
end
auxiliary(message) click to toggle source

@param [String] message

@return [void]

# File lib/bb_flow/printer.rb, line 56
def auxiliary(message)
  puts(message.colorize(:light_black))
end
error(message) click to toggle source

@param [String] message

@return [void]

# File lib/bb_flow/printer.rb, line 35
def error(message)
  puts("[ERROR] #{message}".colorize(:red))
end
note(message) click to toggle source

@param [String] message

@return [void]

# File lib/bb_flow/printer.rb, line 49
def note(message)
  puts(message.colorize(:yellow))
end
panic(message) click to toggle source

@param [String] message

@return [void]

# File lib/bb_flow/printer.rb, line 27
def panic(message)
  error(message)
  abort
end
select_item(items, title, formatter: :name.to_proc) click to toggle source

@param [Array<#name>] items @param [String] title

@return [#name]

# File lib/bb_flow/printer.rb, line 64
def select_item(items, title, formatter: :name.to_proc)
  puts
  note(title)
  auxiliary('Move: arrows, j/k, or Ctrl-N/P    Finish: return')
  Ansi::Selector.select(items, formatter: formatter)
end
select_items(items, title, formatter: :name.to_proc, preselected: []) click to toggle source

@param [Array<#name>] items @param [String] title

@return [Array<#name>]

# File lib/bb_flow/printer.rb, line 75
def select_items(items, title, formatter: :name.to_proc, preselected: [])
  puts
  note(title)
  # TODO: Remove after implementing it in ansi-select.
  auxiliary('Move: arrows or j/k    Toggle: space    Finish: return')
  Ansi::Selector.multi_select(items, formatter: formatter, preselected: preselected)
end
simple_question(question) click to toggle source

@param [String] question

@return [Boolean] positive answer

# File lib/bb_flow/printer.rb, line 17
def simple_question(question)
  yes = 'Yes, please'
  no = 'No, thank you'

  select_item([yes, no], question, formatter: :to_s.to_proc) == yes
end
success(message) click to toggle source

@param [String] message

@return [void]

# File lib/bb_flow/printer.rb, line 42
def success(message)
  puts(message.colorize(:green))
end