Method: Textbringer::Utils.read_single_char

Defined in:
lib/textbringer/utils.rb

.read_single_char(prompt, chars) ⇒ Object



287
288
289
290
291
292
293
294
295
296
297
298
# File 'lib/textbringer/utils.rb', line 287

def read_single_char(prompt, chars)
  map = Keymap.new
  chars.each do |c|
    map.define_key(c, :self_insert_and_exit_minibuffer)
  end
  map.define_key(?\C-g, :abort_recursive_edit)
  char_options = chars.join(?/)
  map.handle_undefined_key do |key|
    -> { message("Invalid key.  Type C-g to quit.", sit_for: 2) }
  end
  read_from_minibuffer(prompt + " (#{char_options}) ", keymap: map)
end