[Ann] rush 0.1.bandicoot: object-oriented shell goodness (rationed for your health)!

= 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!

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!

Guillaume Marcais wrote:

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

The options package (along with an updated Curses interface) is
under $RUSH/bundles/. Just unpack it and run setup on it :slight_smile:

$RUSH/doc/README has info about other packages you may want.

I installed rush with 'sudo ruby setup.rb'.

Guillaume.

[snip announcement]

Thanks!

···

On Fri, 2005-09-30 at 06:11 +0900, The rush folks wrote:

Looks really exciting, but I have to say, +1. :frowning:

$ ruby -v
ruby 1.8.2 (2004-12-23) [i386-linux]

/usr/local/lib/site_ruby/1.8/rush/commands/command.rb:33:in `require': No such
file to load -- options (LoadError)
        from /usr/local/lib/site_ruby/1.8/rush/commands/command.rb:33
        from /usr/local/lib/site_ruby/1.8/rush/commands/commands.rb:33:in
`require'
        from /usr/local/lib/site_ruby/1.8/rush/commands/commands.rb:33
        from /usr/bin/rush:58:in `require'
        from /usr/bin/rush:58

I installed with sudo ruby setup.rb.

···

On Thursday 29 September 2005 15:32, Guillaume Marcais wrote:

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)

Ok, I got a new one for you then. :slight_smile:

$ rush
/usr/local/lib/site_ruby/1.8/rush/buffered_window.rb:172:in `display':
undefined local variable or method `clrtoeol' for
#<Rush::BufferedWindow:0xb7c310fc> (NameError)
        from /usr/bin/rush:103

···

On Thursday 29 September 2005 15:47, The rush folks wrote:

The options package (along with an updated Curses interface) is
under $RUSH/bundles/. Just unpack it and run setup on it :slight_smile:

$RUSH/doc/README has info about other packages you may want.

This would be the $RUSH/bundles/curses.so :slight_smile:

Find out where your current curses.so lives (somewhere
under /usr/lib/ruby), back it up and replace it with
this one. If you are not running a Linux x86-compatible
system, you can compile $RUSH/bundles/curses.c.

Also, just in case it comes up, Ara T. Howard's excellent
library Open4 is required. You can get this through either
Rubygems or from http://www.codeforpeople.com/lib/ruby/open4/\.

Rubygems and Breakpoint are optional libraries.

More info in $RUSH/doc/README.

Thanks!

···

On Thursday 29 September 2005 15:47, The rush folks wrote:

The options package (along with an updated Curses interface) is
under $RUSH/bundles/. Just unpack it and run setup on it :slight_smile:

$RUSH/doc/README has info about other packages you may want.

Ok, I got a new one for you then. :slight_smile:

$ rush
/usr/local/lib/site_ruby/1.8/rush/buffered_window.rb:172:in `display':
undefined local variable or method `clrtoeol' for
#<Rush::BufferedWindow:0xb7c310fc> (NameError)
        from /usr/bin/rush:103

>> The options package (along with an updated Curses interface) is
>> under $RUSH/bundles/. Just unpack it and run setup on it :slight_smile:
>>
>> $RUSH/doc/README has info about other packages you may want.
>
> Ok, I got a new one for you then. :slight_smile:
>
> $ rush
> /usr/local/lib/site_ruby/1.8/rush/buffered_window.rb:172:in `display':
> undefined local variable or method `clrtoeol' for
> #<Rush::BufferedWindow:0xb7c310fc> (NameError)
> from /usr/bin/rush:103

This would be the $RUSH/bundles/curses.so :slight_smile:

Thanks. I know you're deving right now, but perhaps you could to a begin
rescue end block on that code to produce a better error message? (when
you're getting closer to release, obviously.)

···

On Thursday 29 September 2005 16:36, The rush folks wrote:

> On Thursday 29 September 2005 15:47, The rush folks wrote:

Find out where your current curses.so lives (somewhere
under /usr/lib/ruby), back it up and replace it with
this one. If you are not running a Linux x86-compatible
system, you can compile $RUSH/bundles/curses.c.

Also, just in case it comes up, Ara T. Howard's excellent
library Open4 is required. You can get this through either
Rubygems or from http://www.codeforpeople.com/lib/ruby/open4/\.

Rubygems and Breakpoint are optional libraries.

More info in $RUSH/doc/README.

Thanks!

Kevin Brown wrote:

The options package (along with an updated Curses interface) is
under $RUSH/bundles/. Just unpack it and run setup on it :slight_smile:

$RUSH/doc/README has info about other packages you may want.

Ok, I got a new one for you then. :slight_smile:

$ rush
/usr/local/lib/site_ruby/1.8/rush/buffered_window.rb:172:in `display':
undefined local variable or method `clrtoeol' for
#<Rush::BufferedWindow:0xb7c310fc> (NameError)
       from /usr/bin/rush:103

This would be the $RUSH/bundles/curses.so :slight_smile:

Thanks. I know you're deving right now, but perhaps you could to a begin rescue end block on that code to produce a better error message? (when you're getting closer to release, obviously.)

Sure! Changed for next version. In the meanwhile, doc/README
has all the necessary information to get it running.

···

On Thursday 29 September 2005 16:36, The rush folks wrote:

On Thursday 29 September 2005 15:47, The rush folks wrote:

Find out where your current curses.so lives (somewhere
under /usr/lib/ruby), back it up and replace it with
this one. If you are not running a Linux x86-compatible
system, you can compile $RUSH/bundles/curses.c.

Also, just in case it comes up, Ara T. Howard's excellent
library Open4 is required. You can get this through either
Rubygems or from http://www.codeforpeople.com/lib/ruby/open4/\.

Rubygems and Breakpoint are optional libraries.

More info in $RUSH/doc/README.

Thanks!

I would love to use this. Does/will it run on Windows (XP)? Any compiled
versions needed/available?

"The rush folks" <rush-ruby-ml@magical-cat.org> wrote in message
news:433EE1FA.9000202@magical-cat.org...

Kevin Brown wrote:
>
>>>
>>>>The options package (along with an updated Curses interface) is
>>>>under $RUSH/bundles/. Just unpack it and run setup on it :slight_smile:
>>>>
>>>>$RUSH/doc/README has info about other packages you may want.
>>>
>>>Ok, I got a new one for you then. :slight_smile:
>>>
>>>$ rush
>>>/usr/local/lib/site_ruby/1.8/rush/buffered_window.rb:172:in `display':
>>>undefined local variable or method `clrtoeol' for
>>>#<Rush::BufferedWindow:0xb7c310fc> (NameError)
>>> from /usr/bin/rush:103
>>
>>This would be the $RUSH/bundles/curses.so :slight_smile:
>
>
> Thanks. I know you're deving right now, but perhaps you could to a

begin

···

> On Thursday 29 September 2005 16:36, The rush folks wrote:
>>>On Thursday 29 September 2005 15:47, The rush folks wrote:
> rescue end block on that code to produce a better error message? (when
> you're getting closer to release, obviously.)

Sure! Changed for next version. In the meanwhile, doc/README
has all the necessary information to get it running.

>>Find out where your current curses.so lives (somewhere
>>under /usr/lib/ruby), back it up and replace it with
>>this one. If you are not running a Linux x86-compatible
>>system, you can compile $RUSH/bundles/curses.c.
>>
>>Also, just in case it comes up, Ara T. Howard's excellent
>>library Open4 is required. You can get this through either
>>Rubygems or from http://www.codeforpeople.com/lib/ruby/open4/\.
>>
>>Rubygems and Breakpoint are optional libraries.
>>
>>More info in $RUSH/doc/README.
>>
>>Thanks!

itsme213 wrote:

I would love to use this. Does/will it run on Windows (XP)? Any compiled
versions needed/available?

The thing missing from Windows is the Curses support, so not yet.

The 0.2 section will concentrate on abstracting the filesystem and
files themselves (foo.mp3.play), but the 0.3 section will likely see
an alternative interface which would work on Windows as well.

···

"The rush folks" <rush-ruby-ml@magical-cat.org> wrote in message
news:433EE1FA.9000202@magical-cat.org...

Kevin Brown wrote:

On Thursday 29 September 2005 16:36, The rush folks wrote:

On Thursday 29 September 2005 15:47, The rush folks wrote:

The options package (along with an updated Curses interface) is
under $RUSH/bundles/. Just unpack it and run setup on it :slight_smile:

$RUSH/doc/README has info about other packages you may want.

Ok, I got a new one for you then. :slight_smile:

$ rush
/usr/local/lib/site_ruby/1.8/rush/buffered_window.rb:172:in `display':
undefined local variable or method `clrtoeol' for
#<Rush::BufferedWindow:0xb7c310fc> (NameError)
      from /usr/bin/rush:103

This would be the $RUSH/bundles/curses.so :slight_smile:

Thanks. I know you're deving right now, but perhaps you could to a

begin

rescue end block on that code to produce a better error message? (when
you're getting closer to release, obviously.)

Sure! Changed for next version. In the meanwhile, doc/README
has all the necessary information to get it running.

Find out where your current curses.so lives (somewhere
under /usr/lib/ruby), back it up and replace it with
this one. If you are not running a Linux x86-compatible
system, you can compile $RUSH/bundles/curses.c.

Also, just in case it comes up, Ara T. Howard's excellent
library Open4 is required. You can get this through either
Rubygems or from http://www.codeforpeople.com/lib/ruby/open4/\.

Rubygems and Breakpoint are optional libraries.

More info in $RUSH/doc/README.

Thanks!