Project

curtis

0.0
No commit activity in last 3 years
No release in over 3 years
Extremely light wrapper around ncurses-ruby.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.11
~> 5.0
~> 10.0

Runtime

~> 1.2.4
 Project Readme

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.