Hacker News new | past | comments | ask | show | jobs | submit login
Vedeu: Ruby-based terminal GUI framework
91 points by TheRealGL on Aug 19, 2014 | hide | past | favorite | 18 comments
I've been working on a terminal/console based GUI framework for Ruby for around 4/5 months. Its still very basic, but there's a complimentary mp3 playing app which uses it to showcase capabilities. Not quite cross-platform, and still needs a bit of work. Welcoming pull requests.

Vedeu: https://github.com/gavinlaking/vedeu

(The mp3 player; Playa: https://github.com/gavinlaking/playa).




From the headline alone it looks a lot like Urwid in Python-land: http://urwid.org/

Some compare&contrast would be a nice introduction for those who know one but not the other (like me).

EDIT: it looks like this one really doesn't use ncurses at all relying instead on terminal escape codes: https://github.com/gavinlaking/vedeu/blob/master/lib/vedeu/s...

Urwid can use that too, but has a few other display backends: http://urwid.org/reference/display_modules.html#module-urwid...

Urwid is also MUCH older (first Changelog item from 2004).

Of course, Urwid is still Python, so it may not be a good fit if you absolutely need a Ruby library.


Wildly, I was looking for something like this a few weeks ago when I got the itch to create a text-based game. I came across ncurses, but this looks to fit the bill a lot better than that.

I doubt I'll get around to pursuing the game in any amount of time, but I definitely support the project. It fills a niche I was looking for.


I have been looking for something like this a while ago. I was very dissatisfied with the existing solutions. This looks a lot nicer. I hope to find some time to play with this. Thanks for sharing!


How does it compare to some of the other Ruby CLI frameworks?

I've been using escort[0] for my CLI utilities, and it seems like a decent compromise between providing a useful number of features and not bloating your app into a huge framework with a complex DSL to figure out. It is a little short on interactivity once the command is running, though.

[0] https://github.com/skorks/escort


This is not a CLI Framework; it is a GUI framework. You can think of this as a ncurses interface for Ruby.

https://en.wikipedia.org/wiki/Ncurses


It doesn't use ncurses, actually - it just prints characters out to STDOUT.


"characters" is a bit misleading name for what it is: https://github.com/gavinlaking/vedeu/blob/master/lib/vedeu/s... - but yes, that's how it works.


how are those not characters? :D


This looks fantastic, look forward to trying it out. I have built various csv conversion scripts for people to use at work, and have been using the awesome highline[0] option parser, but i would make people feel so much more comfortable with a more usable interface.

[0] https://github.com/JEG2/highline


Hello,

I'm an amateur ruby developer. You should announce your project to the ruby-users mailing list: ruby-talk@ruby-lang.org

best regards and thanks for the code :-)


Thank you, will announce there a little later today :-)


I'm split here, on one hand there's (n)curses already available on ruby, on the other hand, you need an additional library for it. Any other benefit one should be aware of?


Hi,

I've tried to escape the tyranny of NCurses to be honest. NCurses is procedural in nature and I wanted to try to provide an OOP interface as my solution. I'm also experimenting with events which I think make implementing GUI apps with this framework much easier and flexible.


Looks very cool, and more intuitive than a lot of the popular alternatives (urwid, blessings/blessed). I'll be giving this a shot soon, thanks for sharing it!


Wow, I was searching for exactly this kind of framework to build a little Pomodoro clock to run in a Tmux window. Thanks so much for this!


This is pretty cool - been kind of looking for something similar in node-land, inquirer seems a bit lacking


Thanks! Looking forward to applying this to my personal productivity workflow.


I'd love to see modern Turbo Vision clone :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: