Vedeu (vee-dee-you; aka VDU) is my attempt at creating a terminal based application framework without the need for Ncurses. I've tried to make Vedeu as simple and flexible as possible.
Vedeu was been built primarily with Ruby v2.1; however, the .ruby-version file will indicate the currently used Ruby version.
When Vedeu started I was a MacOSX user, I've since moved to Linux. You shouldn't have any problems with either of these operating systems.
Note: You may have trouble running Vedeu with Windows installations. (Pull requests welcome!)
To install Vedeu, simply:
gem install vedeu
To use Vedeu's application scaffolding, see the RubyDoc
Have a look at: Playa. Please browse the source of Playa and Vedeu to get a feel for how it all works.
Note: Playa is based on an old version of Vedeu. Vedeu has significantly improved since then and a better example is coming soon!
If you have produced software which uses Vedeu, please let me know, I'll link to your project here.
Vedeu is documented using Yard. I hope to produce more 'General Usage' documentation shortly. In the meantime, please browse the RubyDoc. In no particular order, here is some documentation for the various aspects of Vedeu:
- Interfaces
- Groups
- Views
- Buffers
- Geometry
- Borders
- Cursors
- Keymaps
- Events
- Configuration
- Getting Started
- The Vedeu DSL
- The Vedeu API
- Object Graphs
Pull requests are very welcome! Please try to follow these simple rules if applicable:
- Please create a topic branch for every separate change you make.
- Make sure your patches are well tested.
- Update the Yard documentation.
(Use
yard stats --list-undoc
to locate undocumented code) - Update the README, if appropriate.
- Please do not change the version number.
Raising issues and finding bugs, updating documentation and improving the code are all welcome contributions. I may also have left some TODO items lying around, which you're quite welcome to and can find with either Yard, or git:
yard list --query '@todo'
git grep --line-number '@todo'
Any branch on the repository that is not master
is probably experimental; do
not rely on anything in these branches. Typically, twerks
will be merged
into master
before a release, and branches prefixed with spike/
are me
playing with ideas- they aren't guaranteed to work at all.
Various environment variables are available to you to help with testing, all of
which can be used in combination, prefaced to rake
:
-
Produce statistics on the slowest performing parts of the application/tests. Useful when used multiple times. See
test/test_helper.rb
for configuration.PERFORMANCE=1 rake
-
Produce a 'SimpleCov' test coverage report in the
coverage/
directory.SIMPLECOV=1 rake
-
Produces a 'SimpleCov' test coverage report with output to the console.
CONSOLE_COVERAGE=1 rake
-
Enable Ruby's warnings mode (this can usually be quote verbose, but thankfully more so with gem dependencies rather than Vedeu itself).
WARNINGS=1 rake
-
Disable Ruby's garbage collection for this test run.
DISABLE_GC=1 rake
-
Use Rubocop to catch coding misdemeanours for this test run. (Or use
rake rubocop
).RUBOCOP=1 rake
-
Build the Yard documentation for the project. (Or use
rake yard
).YARD=1 rake
- Fork it (https://github.com/gavinlaking/vedeu/fork)
- Clone it
- Run
bundle
- Run
rake
(runs all tests and coverage report) orbundle exec guard
- Create your feature branch (
git checkout -b my-new-feature
) - Write some tests, write some code, have some fun!
- Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new pull request.