Skip to content
forked from JEG2/highline

A higher level command-line oriented interface.

License

Notifications You must be signed in to change notification settings

bazzargh/highline

 
 

Repository files navigation

by James Edward Gray II

<img src=“https://travis-ci.org/JEG2/highline.svg” alt=“Build Status” /> <img src=“https://img.shields.io/gem/v/highline.svg?style=flat” /> <img src=“https://codeclimate.com/github/JEG2/highline/badges/gpa.svg” /> <img src=“https://codeclimate.com/github/JEG2/highline/badges/coverage.svg” />

Welcome to HighLine.

HighLine was designed to ease the tedious tasks of doing console input and output with low-level methods like gets() and puts(). HighLine provides a robust system for requesting data from a user, without needing to code all the error checking and validation rules and without needing to convert the typed Strings into what your program really needs. Just tell HighLine what you’re after, and let it do all the work.

See HighLine and HighLine::Question for documentation.

Start hacking in your code with HighLine with:

require 'highline/import'

Basic usage:

ask("Company?  ") { |q| q.default = "none" }

Validation:

ask("Age?  ", Integer) { |q| q.in = 0..105 }
ask("Name?  (last, first)  ") { |q| q.validate = /\A\w+, ?\w+\Z/ }

Type conversion for answers:

ask("Birthday?  ", Date)
ask("Interests?  (comma sep list)  ", lambda { |str| str.split(/,\s*/) })

Reading passwords:

ask("Enter your password:  ") { |q| q.echo = false }
ask("Enter your password:  ") { |q| q.echo = "x" }

ERb based output (with HighLine’s ANSI color tools):

say("This should be <%= color('bold', BOLD) %>!")

Menus:

choose do |menu|
  menu.prompt = "Please choose your favorite programming language?  "

  menu.choice(:ruby) { say("Good choice!") }
  menu.choices(:python, :perl) { say("Not from around here, are you?") }
end

For more examples see the examples/ directory of this project.

HighLine from version >= 1.7.0 requires ruby >= 1.9.3

See the INSTALL file for instructions.

Feel free to email James Edward Gray II or Gregory Brown with any questions.

About

A higher level command-line oriented interface.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Ruby 98.9%
  • Other 1.1%