Curtis
Extremely light wrapper around ncurses-ruby.
Installation
Use the GitHub url in your Gemfile for now. RubyGems coming soon.
Usage
Below is a really simple example:
require 'curtis'
# The #show method is the starting point.
# `screen` here is the standard screen, and is the #parent of other views.
Curtis.show do |screen|
screen.puts 'Welcome to Curtis. A simple ncurses-ruby wrapper.', h: :center
screen.render
# Initialize a new View via keyword arguments.
# All attributes are optional and can be set at a later time.
lower_left = Curtis::View.new(lines: screen.lines / 2, columns: screen.columns / 2, line: screen.lines / 2)
# Fill the lower_left view with the letter 'L'
0.upto lower_left.lines do |line|
lower_left.move_cursor line: line
lower_left.addstr 'L' * lower_left.columns
end
# Actually show the contents of `lower_left`
lower_left.render
# Initialize a new View via block, and using fancy percentages
lower_right = Curtis::View.new do |v|
v.lines = v.parent.lines / 2
v.columns = v.parent.columns / 2
v.line = v.parent.lines / 2
v.column = v.parent.columns / 2
end
# Fill the `lower_right` view with the letter 'R'
0.upto lower_right.lines do |line|
lower_right.move_cursor line: line
lower_right.addstr 'R' * lower_right.columns
end
# Actually show the contents of `lower_right`
lower_right.render
screen.move_cursor line: screen.lines / 4
screen.puts '[Q]uit!', h: :center
# Press 'q' to stop the input loop
Curtis::Input.get do |key|
break if key == 'q'
end
end
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake test
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
TODO
- Tests (how? srlsy)
- Add more Ncurses options
- Improve readme
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/shuriu/curtis.
License
The gem is available as open source under the terms of the MIT License.