Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gavinlaking/vedeu
A framework written in Ruby for building GUI/TUI terminal/console applications.
https://github.com/gavinlaking/vedeu
Last synced: about 2 months ago
JSON representation
A framework written in Ruby for building GUI/TUI terminal/console applications.
- Host: GitHub
- URL: https://github.com/gavinlaking/vedeu
- Owner: gavinlaking
- License: other
- Created: 2014-04-10T19:13:18.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2023-02-28T10:12:43.000Z (almost 2 years ago)
- Last Synced: 2024-05-11T21:20:58.578Z (8 months ago)
- Language: Ruby
- Homepage:
- Size: 7.71 MB
- Stars: 577
- Watchers: 18
- Forks: 35
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- Open-Source-Ruby-and-Rails-Apps - vedeu - A framework written in Ruby for building GUI/TUI terminal/console applications. 👴 (Happy Exploring 🤘)
README
[![Code Climate](https://codeclimate.com/github/gavinlaking/vedeu.png)](https://codeclimate.com/github/gavinlaking/vedeu)
[![Build Status](https://travis-ci.org/gavinlaking/vedeu.svg?branch=master)](https://travis-ci.org/gavinlaking/vedeu)# Vedeu
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.## Requirements
- Ruby (see [.ruby-version](https://github.com/gavinlaking/vedeu/blob/master/.ruby-version) for current version)
- Linux/MacOSX**Note**: You may have trouble running Vedeu with Windows installations. (Pull
requests welcome!)## Dependencies
Vedeu relies on the following gems, these will be automatically
installed when you install Vedeu (as documented below).- bundler
- rake
- vedeu_cli
- thor## Installation
To install Vedeu, simply:
gem install vedeu
To use Vedeu's application scaffolding, see the
[RubyDoc](http://www.rubydoc.info/gems/vedeu/file/docs/getting_started.md)## Example
Have a look at: [Playa](https://github.com/gavinlaking/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.## Documentation & Usage
Vedeu is documented using Yard. I hope to produce more 'General Usage'
documentation shortly. In the meantime, please browse the
[RubyDoc](http://rubydoc.info/gems/vedeu). Finally, here is some
documentation for the various aspects of Vedeu (not comprehensive):- [The Vedeu API](http://rubydoc.info/gems/vedeu/file/docs/api.md)
- [Borders](http://rubydoc.info/gems/vedeu/file/docs/borders.md)
- [Buffers](http://rubydoc.info/gems/vedeu/file/docs/buffer.md)
- [Cell](http://rubydoc.info/gems/vedeu/file/docs/cell.md)
- [Chars](http://rubydoc.info/gems/vedeu/file/docs/chars.md)
- [Colours & Styles](http://rubydoc.info/gems/vedeu/file/docs/colours_styles.md)
- [Configuration](http://rubydoc.info/gems/vedeu/file/docs/configuration.md)
- [Cursors](http://rubydoc.info/gems/vedeu/file/docs/cursors.md)
- [The Vedeu DSL](http://rubydoc.info/gems/vedeu/file/docs/dsl.md)
- [Events](http://rubydoc.info/gems/vedeu/file/docs/events.md)
- [Application Events](http://rubydoc.info/gems/vedeu/file/docs/events/application.md)
- [Document Events](http://rubydoc.info/gems/vedeu/file/docs/events/document.md)
- [Focus Events](http://rubydoc.info/gems/vedeu/file/docs/events/focus.md)
- [Menu Events](http://rubydoc.info/gems/vedeu/file/docs/events/menu.md)
- [Movement Events](http://rubydoc.info/gems/vedeu/file/docs/events/movement.md)
- [Refresh Events](http://rubydoc.info/gems/vedeu/file/docs/events/refresh.md)
- [System Events](http://rubydoc.info/gems/vedeu/file/docs/events/system.md)
- [View Events](http://rubydoc.info/gems/vedeu/file/docs/events/view.md)
- [Visibility Events](http://rubydoc.info/gems/vedeu/file/docs/events/visibility.md)
- [Geometry](http://rubydoc.info/gems/vedeu/file/docs/geometry.md)
- [Getting Started](http://rubydoc.info/gems/vedeu/file/docs/getting_started.md)
- [Groups](http://rubydoc.info/gems/vedeu/file/docs/group.md)
- [Input](http://rubydoc.info/gems/vedeu/file/docs/input.md)
- [Interfaces](http://rubydoc.info/gems/vedeu/file/docs/.md)
- [Keymaps](http://rubydoc.info/gems/vedeu/file/docs/keymaps.md)
- [Lines](http://rubydoc.info/gems/vedeu/file/docs/lines.md)
- [Object Graphs](http://rubydoc.info/gems/vedeu/file/docs/object_graph.md)
- [Output](http://rubydoc.info/gems/vedeu/file/docs/output.md)
- [Streams](http://rubydoc.info/gems/vedeu/file/docs/streams.md)
- [Template](http://rubydoc.info/gems/vedeu/file/docs/template.md)
- [Views](http://rubydoc.info/gems/vedeu/file/docs/view.md)There are also some small, simple applications in the
[examples/](https://github.com/gavinlaking/vedeu/blob/master/examples)
directory to show some concepts and basic functionality. This is not
exhaustive, but are being added to and improved fairly regularly.## Development / Contributing
* Documentation hosted at [RubyDoc](http://rubydoc.info/gems/vedeu).
* Source hosted at [GitHub](https://github.com/gavinlaking/vedeu).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](http://yardoc.org/) documentation.
(Use `yard stats --list-undoc` to locate undocumented code)
* Update the
[README](https://github.com/gavinlaking/vedeu/blob/master/README.md),
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
### General contribution help
1. Fork it ([https://github.com/gavinlaking/vedeu/fork](https://github.com/gavinlaking/vedeu/fork))
2. Clone it
3. Run `bundle`
4. Run `rake` (runs all tests and coverage report) or `bundle exec guard`
5. Create your feature branch (`git checkout -b my-new-feature`)
6. Write some tests, write some code, **have some fun!**
7. Commit your changes (`git commit -am 'Add some feature'`)
8. Push to the branch (`git push origin my-new-feature`)
9. Create a new pull request.## Author & Contributors
### Author
[Gavin Laking](https://github.com/gavinlaking)
([@gavinlaking](http://twitter.com/gavinlaking))### Contributors
[https://github.com/gavinlaking/vedeu/graphs/contributors](https://github.com/gavinlaking/vedeu/graphs/contributors)