问题
So, there are web frameworks, there are GUI frameworks, I was just wondering if there was a console/command line framework for ruby?
Specifically, I would like to be able to:
- Have a particular view wherein I could tab to different input segments. Exactly like you can do with forms on a web page.
- I would like the usual console shortcuts to work (ctr-k, ctr-a, ctr-e, etc)
- If the cursor is at a certain input position, sometimes I would like it to response to a single key press event, rather than my having to enter text and then press enter.
Does not have to be a unified framework. But I notice that it does seem somewhat cumbersome to write console apps in ruby. Are there any tools that make this easier?
回答1:
Judging from your questions it sounds like your like looking for curses-based frameworks. But in case that you're not, here are some console/irb-related gems I've written that may be useful:
- hirb - view framework for associating classes with views
- bond - custom readline completion made easy
- boson - console command framework
Now to answer your questions:
- Though I don't know how to do it, there is this nice curses app whose source code you could read.
- require 'readline' gives you those keybindings
- require 'highline'; answer = HighLine.new.ask('ask something') {|e| e.character = true }
回答2:
Maybe http://rbcurse.rubyforge.org/ can help
回答3:
Found two more (used neither though):
- Ruby Dialog Interface and
- STFL
By the way, I think you had library, not framework in mind. It's a bit unrealistic expecting someone to develop console-based MVC framework... Anyway, everyone is free to try porting Rails... ;)
Actually, using text-based browser with a web application written with accessibility in mind could give you what you need. Plus you get a web interface for free!
回答4:
I think SimpleConsole is what you are looking for:
It’s a tiny framework to get console applications developed quickly. It might be overkill for scripts, but is pretty useful for some applications. [...] SimpleConsole has a controller and a view, the controller sets up variables for the view to present. The view is optional, but is handy in the cases that you have a lot of ‘puts’ methods and you want to separate them from your logic.
回答5:
This is what you are looking for: Luc.ie http://my.luc.ie/
Lucie is an MVC pattern based console application framework written in Ruby.
回答6:
I added this above, adding as a separate answer as well so that it can be evaluated on its own.
Try out cliqr. It is a lightweight yet a powerful framework that comes with a bunch of features pre-built (including a shell for your command). Take a look at the examples in the git repository.
来源:https://stackoverflow.com/questions/1805499/is-there-a-command-line-framework-for-ruby