- This repository is archived
- No longer maintained
- All versions have been yanked from https://rubygems.org for releasing valuable namespace for others
- I recommend using a different library for this purpose, as an example is https://github.com/Shopify/cli-ui
Tiny assistant for CUI operations.
Require Ruby 3.1 or later
Try below scenario on REPL. Or execute this repository's ./bin/console
require 'io/nosey'
parker = IO::Nosey::Parker.new
# input validation
parker.ask('What\'s your name?("first_name last_name"): ', input: /\A\w+ \w+\z/)
# mix the validations and procedures
parker.ask('How old are you?: ',
input: /\A(\d+)\z/,
parse: ->s{Integer s},
return: 10..100
)
# default value
parker.ask("What's your favorite?: ", default: 'ruby')
# yes or no
parker.agree?('Do you like this API?: ')
# for password and secrets
parker.ask("What's your password?: ", echo: false)
# choose one from collections
parker.choose('Which Five do you like?: ',
5 => '5 is a Integer',
'five' => '"five" is a String',
:FIVE => ':FIVE is a Symbol'
)
# multi line mode
parker.ask('Write your poem and exit ctrl+d :) ', multi_line: true)
- #ask
- #agree?
- #choose
input -> parse -> return
- input # validation for input string
- parse # procedure for input string
- return # validation for return value
Other
- default # when null input
- echo # set "echo is (true or false)"
- error # change error message when invalid input
- multi_line # prefer multi_line mode for inputs(exit via ctrl+d)