From: Guillaume Marcais Date: 2005-09-30T06:32:07+09:00 Subject: Re: [Ann] rush 0.1.bandicoot: object-oriented shell goodness (rationed for your health)! This looks fun! Although I get an error: rush /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require__': No such file to load -- options (LoadError) from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require' from ./lib/rush/commands/command.rb:33 from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require__' from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require' from ./lib/rush/commands/commands.rb:33 from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require__' from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require' from /usr/bin/rush:58 I installed rush with 'sudo ruby setup.rb'. Guillaume. On Fri, 2005-09-30 at 06:11 +0900, The rush folks wrote: > = rush-0.1.bandicoot > > == rush? > rush is an attempt to create an extremely flexible fully object-oriented > shell in Ruby. > > 0.1.bandicoot is the current state of development (small and rather > fuzzy). > > The purpose of this release was to offer rudimentary support for shell > integration and to refine the infrastructure. The more extreme > development is still to come. > > > == Getting rush > http://www.magical-cat.org/projects/rush/downloads/rush-0.1.bandicoot.tar.gz > > Unpack the archive: complete installation instructions are in > doc/README. > > > == What can it do? > At this stage, rush is limited but already has some useful features: > the most important one of these is that you can write any valid ruby > code right from your command-line: > > r u s h > x = 1 + 2 > r u s h > puts x + 2 > 5 > r u s h > def foo(x) > -ruby- 1> puts x > -ruby- 1> end > r u s h > > r u s h > foo "Hello!" > Hello! > r u s h > > > You can treat rush as irb or just another .rb file (you can almost > discard irb altogether). Some diagnostic information can also be > requested: > > r u s h > $env.rubyreturn! > r u s h > 1 + 1 > # => 2 > r u s h > $env.debug! > # => true > > rush tries to integrate with traditional shell syntax. Currently, > pipes and 'commands' are supported. Commands are the traditional > shell programs such as 'ls' and 'cd'. rush defines some of these > commands itself (Commands.list for a list) but it also allows one > to access the commands provided by the system by prepending the > command with a '!'; for example, !ls (some programs, such as vi, > require special handling. These programs are launched with ^vi). > Standard pipe filter syntax: > > r u s h > !ls > test.rb > foobar.rb > r u s h > !ls | !grep 'foo' > foobar.rb > > But here is where things get exciting: you can mix Ruby with pipes. > > r u s h > 'foo' | !grep 'foo' > foo > > Or, the other way: > > r u s h > !ls | .first > test.rb > r u s h > !ls | .first | .reverse > br.tset > r u s h > !ls | .map {|file| file + '.bak'} > test.rb.bak > foobar.rb.bak > r u s h > !ls | .class > Array > r u s h > 97 | .chr > a > > You can invoke any method on the ruby object returned by the pipe as > long as that object responds to it. You can also do more complex > manipulation by accessing the object as $pipe which means you need not > call one of its methods directly: > > r u s h > !ls | files = $pipe; foo(files) > test.rb > foobar.rb > > rush is completely customizable since it is written in ruby. You can, > actually, modify the running program right from the command-line. If you > want and/or need persistent initializations and such, you can use the > standard location ~/.rushrc. See doc/HOWTO.customizing for information > on this file. > > rush also includes tab completion for directories/files and ruby > method completion! > > For more information, see doc/HOWTO.using in your rush directory. > > > == Documentation > All of rush's documentation is in the doc/ directory. Additionally, it > is available on the web. > > http://www.magical-cat.org/projects/rush/rdoc > > IE and possibly Opera: > > http://www.magical-cat.org/projects/rush/rdoc-ie > > > == Contact > The simplest way is to join the channel #rush on freenode and ask away. > You can also sign up for the mailing list or visit the bug tracker: > > http://rubyforge.org/mailman/listinfo/rush-developer > > http://rubyforge.org/tracker/?group_id=874 > > > == Development > See the world! > > Then join the project! > > Developer docs are in doc/HOWTO.development or on the web: > http://www.magical-cat.org/projects/rush/rdoc/#file:doc.HOWTO.development > > Visit #rush on freenode. > > Sign up for the mailing list (with practically negative traffic): > http://rubyforge.org/mailman/listinfo/rush-developer > > > == Developers > rush is: > dpb, kazzmir, kbrooks, manveru, martin, reyn, rue, shevegen, vagabond > > > == Thanks! Have fun with rush! >