[#54640] bRuby? — Austin Ziegler <austin@...>

Can anyone explain to me what Yuya's package bRuby

16 messages 2002/11/01
[#54646] Re: bRuby? — Matt Gushee <mgushee@...> 2002/11/01

On Fri, Nov 01, 2002 at 11:40:51AM +0900, Austin Ziegler wrote:

[#55128] Re: bRuby? (Yet another Ruby parser) — ptkwt@...1.aracnet.com (Phil Tomson) 2002/11/07

In article <20021107151904lBE13F@ohmsha.co.jp>,

[#54839] rubyconf notes — Pat Eyler <pate@...>

On Saturday Night, I recommended that attendees of Ruby Conf send off

38 messages 2002/11/04
[#54881] Matz Roundtable Summary (was Re: rubyconf notes) — Paul Duncan <pabs@...> 2002/11/05

Below is my pieced together summary of matz's roundtable summary. It's

[#54862] A vision for Parrot — Daniel Pfeiffer <occitan@...>

Hi,

80 messages 2002/11/04

[#54889] PGP on the list (was: Re: Matz Roundtable Summary) — Eric Hodel <drbrain@...7.net>

Paul Duncan (pabs@pablotron.org) wrote:

12 messages 2002/11/05

[#54906] Win32 support issues — "Gavin Sinclair" <gsinclair@...>

<quote source="roundtable">

14 messages 2002/11/05

[#55091] PGP signatures — "Gavin Sinclair" <gsinclair@...>

From: "Paul Duncan" <pabs@pablotron.org>

18 messages 2002/11/07

[#55149] Making Instace Variables Private/Local — William Djaja Tjokroaminata <billtj@...>

Hi Matz,

27 messages 2002/11/07

[#55221] CPAN Style installer — Tom Clarke <tom@...2i.com>

Hi all,

30 messages 2002/11/08
[#55233] Re: CPAN Style installer — ptkwt@...1.aracnet.com (Phil Tomson) 2002/11/08

In article <Pine.LNX.4.44.0211071926160.7998-100000@localhost.localdomain>,

[#55241] Re: CPAN Style installer — Tom Clarke <tom@...2i.com> 2002/11/08

On Fri, 8 Nov 2002, Phil Tomson wrote:

[#55290] Re: CPAN Style installer — " JamesBritt" <james@...> 2002/11/08

>

[#55291] Re: CPAN Style installer — tom <tom@...2i.com> 2002/11/08

On Sat, 9 Nov 2002, JamesBritt wrote:

[#55304] Re: CPAN Style installer — " JamesBritt" <james@...> 2002/11/08

> From: tom [mailto:tom@u2i.com]

[#55258] Beginner Question (Idiomatic way to subset an array — "Booth, Peter" <Peter.Booth@...>

I'm wondering if there is a more idiomatic way to do the following?

20 messages 2002/11/08
[#55261] Re: Beginner Question (Idiomatic way to subset an array — ahoward <ahoward@...> 2002/11/08

On Fri, 8 Nov 2002, Booth, Peter wrote:

[#55268] return MyClass.new vs self.type.send :new — ahoward <ahoward@...> 2002/11/08

[#55361] Lighting Rod — Eric Armstrong <eric.armstrong@...>

I love Ruby's smalltalk features. I really do.

16 messages 2002/11/09

[#55369] Why use 'include' — Eric Schwartz <emschwar@...>

As requested, here's a FAQ question & answer on the usage of modules

13 messages 2002/11/09

[#55372] Random idea: Procedural CGI?? — "Hal E. Fulton" <hal9000@...>

I've been musing about something today,

17 messages 2002/11/09

[#55442] Recording of the Ruby segement on LL2 — Yohanes Santoso <ysantoso@...>

Hi all,

22 messages 2002/11/09

[#55461] www.ruby-doc.org — " JamesBritt" <james@...>

Jim Freeze's presentation at RubyConf 2002 mentioned, among other things, the

18 messages 2002/11/10

[#55563] EuRuKo: European Ruby conference — Armin Roehrl <armin@...>

Hi all,

15 messages 2002/11/11

[#55571] ruby-dev summary 18613-18710 — TAKAHASHI Masayoshi <maki@...>

Hi all,

26 messages 2002/11/11
[#55926] Re: ruby-dev summary 18613-18710 — timsuth@... (Tim Sutherland) 2002/11/15

In article <20021112020739J.maki@rubycolor.org>, TAKAHASHI Masayoshi wrote:

[#55929] Re: ruby-dev summary 18613-18710 — dblack@... 2002/11/15

Hi --

[#55955] Re: ruby-dev summary 18613-18710 — timsuth@... (Tim Sutherland) 2002/11/15

In article <Pine.LNX.4.44.0211142157370.25867-100000@candle.superlink.net>,

[#55750] Another Newbie question regarding instance variables? — montana <montana@...99.bsd.st>

The value of an instance variable is only available to the instance of the class, whereas the value of the class variable is available to all instances of the class? Is this correct?

10 messages 2002/11/13

[#55815] RubyConf 2002 Slides for FreeRIDE Presentation — "Curt Hibbs" <curt@...>

I finally got the slides online from Rich Kilmer's FreeRIDE presentation at

40 messages 2002/11/14
[#55828] Re: RubyConf 2002 Slides for FreeRIDE Presentation — " JamesBritt" <james@...> 2002/11/14

>

[#55829] Re: RubyConf 2002 Slides for FreeRIDE Presentation — "Curt Hibbs" <curt@...> 2002/11/14

JamesBritt wrote:

[#56087] Re: RubyConf 2002 Slides for FreeRIDE Presentation — Robert McGovern <tarasis@...> 2002/11/17

Curt Hibbs wrote:

[#56088] Re: RubyConf 2002 Slides for FreeRIDE Presentation — "Rich Kilmer" <rich@...> 2002/11/17

Extensibility IN RUBY was the key thing for us. We wanted the IDE to be

[#55818] regex help — "Shashank Date" <sdate@...>

Using ruby 1.7.3 (2002-10-12) [i386-mswin32] on Win XP (Home)

14 messages 2002/11/14

[#55842] Ruby equivalent to Python's map()? — wolfoxbr@... (Roberto Amorim)

Hi...

18 messages 2002/11/14

[#56045] Not really a ruby question, but this is a smart group. Win32 file.write timing. — jcb@... (MetalOne)

I am trying to write non-compressed video to a file at 40 fps.

16 messages 2002/11/16

[#56119] ruby-dev summary 18711-18810 — Minero Aoki <aamine@...>

Hi all,

34 messages 2002/11/18

[#56131] identing ruby in vim — Maur兤io <briqueabraque@...>

Hi,

14 messages 2002/11/18

[#56158] install.rb/setup.rb question — ptkwt@...1.aracnet.com (Phil Tomson)

I want to install a script that will be run as an executable which isn't a

26 messages 2002/11/18

[#56250] Need help dynamically creating classes. — pgregory@... (Paul Gregory)

I have a system at the moment where I create 'things' based on a base

11 messages 2002/11/19

[#56300] untainted, unfrozen, honest-to-god session data! — "Chris" <nemo@...>

Hello,

12 messages 2002/11/20

[#56376] Interpreted vs compiled [FAQ] defining methods anywhere — Daniel Carrera <dcarrera@...>

Hello,

13 messages 2002/11/21
[#56378] Re: [FAQ] Interpreted vs compiled [FAQ] defining methods anywhere — "Iain 'Spoon' Truskett" <spoon-dated-1039065493.b360fd@...> 2002/11/21

* Daniel Carrera (dcarrera@math.umd.edu) [21 Nov 2002 16:07]:

[#56388] Ruby is too slow — jcb@... (MetalOne)

I have been writing some image processing algorithms that run on incoming

37 messages 2002/11/21

[#56440] Multiple constructors? — christopher.j.meisenzahl@...

18 messages 2002/11/21

[#56469] The ultimate Application — "Dat Nguyen" <thucdat@...>

13 messages 2002/11/21

[#56593] Ruby idom needed — Robert Cowham <rc@...>

What's the best ruby idiom for the following Perl:

23 messages 2002/11/24

[#56633] Things That Newcomers to Ruby Should Know (11/24/02) — William Djaja Tjokroaminata <billtj@...>

Hi,

56 messages 2002/11/25
[#56679] Re: Things That Newcomers to Ruby Should Know (11/24/02) — William Djaja Tjokroaminata <billtj@...> 2002/11/25

Hi,

[#56694] Re: Things That Newcomers to Ruby Should Know (11/24/02) — "Gavin Sinclair" <gsinclair@...> 2002/11/26

From: "Simon Cozens" <simon@simon-cozens.org>

[#56695] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Daniel Carrera <dcarrera@...> 2002/11/26

[#56722] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Austin Ziegler <austin@...> 2002/11/26

On Tue, 26 Nov 2002 09:21:48 +0900, Daniel Carrera wrote:

[#56725] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Daniel Carrera <dcarrera@...> 2002/11/26

> It's applicable to a small subset of the total set of classes.

[#56726] Re: Things That Newcomers to Ruby Should Know (11/24/02) — "Gavin Sinclair" <gsinclair@...> 2002/11/26

[#56729] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Daniel Carrera <dcarrera@...> 2002/11/26

[snip]

[#56738] Re: Things That Newcomers to Ruby Should Know (11/24/02) — dblack@... 2002/11/26

Hi --

[#56744] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Jason Persampieri <helgaorg@...> 2002/11/26

> You're not changing the letter 'a' itself; you're

[#56764] Re: Things That Newcomers to Ruby Should Know (11/24/02) — "Hal E. Fulton" <hal9000@...> 2002/11/26

----- Original Message -----

[#56807] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Jason Persampieri <helgaorg@...> 2002/11/26

OK... I get it... I understood your argument (although

[#56812] Re: Things That Newcomers to Ruby Should Know (11/24/02) — William Djaja Tjokroaminata <billtj@...> 2002/11/26

Jason Persampieri <helgaorg@yahoo.com> wrote:

[#56814] Re: Things That Newcomers to Ruby Should Know (11/24/02) — dblack@... 2002/11/26

Hi --

[#56665] FXRuby on Mandrake 8.2 — Ludo <coquelle@...>

Hi, could someone help a beginner rubyer please ?

15 messages 2002/11/25

[#56708] Default value of property — Tim Bates <tim@...>

I have an object, with a method that returns another object, or nil under

20 messages 2002/11/26

[#56719] each_with_index & collect_with_index? — Tim Bates <tim@...>

Array.each (and others) have an alternative .each_index which passes the index

34 messages 2002/11/26
[#56734] Re: each_with_index & collect_with_index? — dblack@... 2002/11/26

Hi --

[#56800] Re: each_with_index & collect_with_index? — Gordon Miller <gmiller@...> 2002/11/26

> As for the second.... I recently appointed myself President of

[#56845] Re: each_with_index & collect_with_index? — why the lucky stiff <ruby-talk@...> 2002/11/27

Gordon Miller (gmiller@promisemark.com) wrote:

[#56849] Re: each_with_index & collect_with_index? — Jason Persampieri <helgaorg@...> 2002/11/27

> It would be really cool if, instead of having a

[#56851] Re: each_with_index & collect_with_index? — dblack@... 2002/11/27

Hi --

[#56772] RCR: Stack, Queue alias methods in Array — Martin DeMello <martindemello@...>

Rationale: Ruby arrays can be easily used as stacks and queues, but it's

46 messages 2002/11/26
[#56793] Re: RCR: Stack, Queue alias methods in Array — matz@... (Yukihiro Matsumoto) 2002/11/26

Hi,

[#56797] Re: RCR: Stack, Queue alias methods in Array — Nikodemus Siivola <tsiivola@...> 2002/11/26

[#56967] call-by-reference problem again — Shannon Fang <xrfang@...>

Hi there,

23 messages 2002/11/27
[#56970] Re: call-by-reference problem again — William Djaja Tjokroaminata <billtj@...> 2002/11/27

Shannon Fang <xrfang@hotmail.com> wrote:

[#56972] Re: call-by-reference problem again — Dave Thomas <Dave@...> 2002/11/27

William Djaja Tjokroaminata <billtj@y.glue.umd.edu> writes:

[#57146] Ruby ++, the one element and generators — "MikkelFJ" <mikkelfj-anti-spam@...>

21 messages 2002/11/30

[#57172] Numerical Ruby — Olivier Saut <Olivier.Saut@...>

Hi all,

14 messages 2002/11/30

Things That Newcomers to Ruby Should Know (11/24/02)

From: William Djaja Tjokroaminata <billtj@...>
Date: 2002-11-25 05:02:58 UTC
List: ruby-talk #56633
Hi,

This is the (approximately) monthly posting of this list.  I just added
minor examples to Items 11 and 17.  Also note that since currently
there is some DNS problem with the "Ruby Central" site, please see the
instruction at http://www.ruby-lang.org/en/.

This list is also available in HTML format at
http://www.glue.umd.edu/~billtj/ruby.html.

Regards,

Bill
=============================================================================

                   Things That Newcomers to Ruby Should Know

  Table of Contents

     * Resources

    1. Using warnings
    2. Interactive shell
    3. On-screen documentation
    4. Class#method notation
    5. Getting characters from a String
    6. Array and Hash default values
    7. Mutable Hash keys
    8. Reading numerals from a file
    9. Pre/Post Increment/Decrement Operators
   10. Lexical scoping in blocks
   11. Two sets of logical operators
   12. The === operator and case statements
   13. White space
   14. The "dot" method call operator
   15. Range objects
   16. Boolean values
   17. Variables, references, and objects
   18. Deep copy
   19. Class variables
   20. Substituting Backslashes

     * Things That Are Good to Know :-)
     _________________________________________________________________

     * Resources:
          + HOME PAGE: http://www.ruby-lang.org/en/
          + FAQ: http://www.rubycentral.com/faq/ (original) or
            http://www.rubygarden.org/iowa/faqtotum (latest)
          + PITFALL:
            http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=pitfall
          + ONLINE TUTORIAL/DOC/BOOK: http://www.rubycentral.com/book/
          + VERY USEFUL HINTS:
               o "Programming Ruby" book by David Thomas and Andrew Hunt,
                 "When Trouble Strikes" Chapter, "But It Doesn't Work"
                 Section
               o "The Ruby Way" book by Hal Fulton, Chapter 1: "Ruby In
                 Review"

    1. Use "ruby -w" instead of simply "ruby" to get helpful warnings. If
       not invoking "ruby" directly, you can set the environment variable
       RUBYOPT to 'w':
          + win32:
            C:\> set RUBYOPT=w
                or
            pressing F5 (to execute) in the Scite editor will give you 
            warnings
            (and F4 will position at problematic line).
          + unix:
            sh# export RUBYOPT="w"
                or
            csh# setenv RUBYOPT "w"

    2. Ruby has an interactive shell; try to invoke the command "irb"
       instead of "ruby". "irb" is best used for experimenting with the
       language and classes; you may try things out in this environment
       before putting them in your programs.

    3. For convenient on-screen Ruby documentation, consider to use (and
       install, if necessary) "ri"
       (http://www.pragmaticprogrammer.com/ruby/downloads/ri.html).
       For example, too see the methods of the File class, run "ri File".
       To read about its open method, type "ri File.open".

    4. The notation "Klass#method" in documentation is used only to
       represent an "instance method" of an object of class Klass; it is
       not a Ruby syntax at all. A "class method" in documentation, on
       the other hand, is usually represented as "Klass.method" (which is
       a valid Ruby syntax).

    5. The String#[Fixnum] method does not return the "character" (which
       is a string of length one) at the Fixnum position, but instead the
       ASCII character code at the position (however, this may change in
       the future). Currently, to get the character itself, use
       String#[Fixnum,1] instead.
       Furthermore, there are additional ASCII conversion methods such as
          + Integer#chr to convert from the ASCII code to the character
            65.chr    # -> "A"
          + ?chr to convert from the character to the ASCII code
            ?A        # -> 65
       Using these properties, for example, some ways to get the last
       character in a string is by writing "aString[-1, 1]" or
       "aString[-1].chr".

    6. Array.new(2, Hash.new) # -> [{}, {}]
       but the two array elements are identical objects, not independent
       hashes. To create an array of (independent) hashes, use the "map"
       or "collect" method:
            arr = (1..2).map {Hash.new}
       Similarly, when creating a hash of arrays, probably the following
       is not the original intention:
            hsh = Hash.new([])
            while line = gets
              if line =~ /(\S+)\s+(\S+)/
                hsh[$1] << $2
              end
            end
            puts hsh.length    # -> 0
       One correct and concise way is to write "(hash[key] ||= []) <<
       value", such as
            hsh = Hash.new
            while line = gets
              if line =~ /(\S+)\s+(\S+)/
                (hsh[$1] ||= []) << $2
              end
            end

    7. Be careful when using "mutable" objects as hash keys. To get the
       expected result, call Hash#rehash before accessing the hash
       elements. Example:
            s = "mutable"
            arr = [s]
            hsh = { arr => "object" }
            s.upcase!
            p hsh[arr]    # -> nil (maybe not what was expected)
            hsh.rehash
            p hsh[arr]    # -> "object"

    8. After reading data from a file and putting them into variables,
       the data type is really String. To convert them into numbers, use
       the "to_i" or "to_f" methods. If, for example, you use the "+"
       operator to add the "numbers" without calling the conversion
       methods, you will simply concatenate the strings.
       An alternative is to use "scanf"
       (http://www.rubyhacker.com/code/scanf).

    9. Ruby has no pre/post increment/decrement operator. For instance,
       x++ or x-- will fail to parse. More importantly, ++x or --x will
       do nothing! In fact, they behave as multiple unary prefix
       operators: -x == ---x == -----x == ......

   10. Beware of the lexical scoping interaction between local variables
       and block local variables. If a local variable is already defined
       before the block, then the block will use (and quite possibly
       modify) the local variable; in this case the block does not
       introduce a new scope. Example:
            (0..2).each do |i|
              puts "inside block: i = #{i}"
            end
            puts "outside block: i = #{i}"    # -> undefined `i'
       On the other hand,
            i = 0
            (0..2).each do |i|
              puts "inside block: i = #{i}"
            end
            puts "outside block: i = #{i}"    # -> 'outside block: i = 2'
       and
            j = 0
            (0..2).each do |i|
              j = i
            end
            puts "outside block: j = #{j}"    # -> 'outside block: j = 2'

   11. In Ruby, there are two sets of logical operators: [!, &&, ||] and
       [not, and, or]. [!, &&, ||]'s precedence is higher than the
       assignments (=, %=, ~=, /=, etc.) while [not, and, or]'s
       precedence is lower. Also note that while &&'s precedence is
       higher than ||'s, the and's precedence is the same as the or's. An
       example:
            a = 'test'
            b = nil
            both = a && b       # both == nil
            both = a and b      # both == 'test'
            both = (a and b)    # both == nil

   12. In the case statement
            case obj
            when obj_1
              ....
            when obj_k
              ....
       it is the "===" method which is invoked, not the "==" method.
       Also, the order is "obj_k === obj" and not "obj === obj_k".
       The reason for this order is so that the case statement can
       "match" obj in more flexible ways. Three interesting cases are
       when obj_k is either a Module/Class, a Regexp, or a Range:
          + The Module/Class class defines the "===" method as a test
            whether obj is an instance of the module/class or its
            descendants ("obj#kind_of? obj_k").
          + The Regexp class defines the "===" method as a test whether
            obj matches the pattern ("obj =~ obj_k").
          + The Range class defines the "===" method as a test whether
            obj is an element of the range ("obj_k.include? obj").

   13. It is advisable not to write some white space before the opening
       '(' in a method call; else, Ruby with $VERBOSE set to true may
       give you a warning.

   14. The "dot" for method call is the strongest operator. So for
       example, while in some other languages the number after the dot in
       a floating point number is optional, it is not in Ruby. For
       example, "1.e6" will try to call the method "e6" of the object 1
       (which is a Fixnum). You have to write "1.0e6".
       However, notice that although the dot is the strongest operator,
       its precedence with respect to method name may be different with
       different Ruby versions. At least in Ruby 1.6.7, "puts
       (1..3).length" will give you a syntax error; you should write
       "puts((1..3).length)" instead.

   15. "0..k" represents a Range object, while "[0..k]" represents an
       array with a single element of type Range. For example, if
            [0..2].each do |i|
              puts "i = #{i}"
            end
       does not give what you expect, probably you should have written
            (0..2).each do |i|
              puts "i = #{i}"
            end
       or
            0.upto(2) do |i|
              puts "i = #{i}"
            end
       instead. Notice also that Ruby does not have objects of type
       "Tuple" (which are immutable arrays) and parentheses are usually
       put around a Range object for the purpose of precedence grouping
       (as the "dot" is stronger than the "dot dot" in the above
       example).

   16. In Ruby, only false and nil are considered as false in a Boolean
       expression. In particular, 0 (zero), "" or '' (empty string), []
       (empty array), and {} (empty hash) are all considered as true.

   17. Ruby variables hold references to objects and the = operator
       copies the references. Also, a self assignment such as a += b is
       actually translated to a = a + b. Therefore it may be advisable to
       be aware whether in a certain operation you are actually creating
       a new object or modifying an existing one.
       For example, string << "another" is faster than string +=
       "another" (no extra object creation), so you would be better off
       using any class-defined update-method (if that is really your
       intention), if it exists. However, notice also the "side effects"
       on all other variables that refer to the same object:
            a = 'aString'
            c = a
            a += ' modified using +='
            puts c    # -> "aString"

            a = 'aString'
            c = a
            a << ' modified using <<'
            puts c    # -> "aString modified using <<"

   18. There is no standard, built-in deep copy in Ruby. One way to
       achieve a similar effect is by serialization/marshalling. Because
       in Ruby everything is a reference, be careful when you want to
       "copy" objects (such as by using the dup or clone method),
       especially for objects that contain other objects (such as arrays
       and hashes) and when the containment is more than one level deep.

   19. A class variable is in general per-hierarchy, not per-class (i.e.,
       a class variable is "shared" by a parent and all of its
       descendants, in addition to being shared by all instances of that
       class). One subtle exception is if a child class creates a class
       variable before its parent does. For example, when a parent
       creates a class variable first:
            class Base
              def initialize;     @@var = 'base'; end
              def base_set_var;   @@var = 'base'; end
              def base_print_var; puts @@var;     end
            end

            class Derived < Base
              def initialize;        super; @@var = 'derived'; end #notice
              def derived_set_var;   @@var = 'derived';        end
              def derived_print_var; puts @@var;               end
            end

            d = Derived.new
            d.base_set_var;    d.derived_print_var    # -> 'base'
                               d.base_print_var       # -> 'base'
            d.derived_set_var; d.derived_print_var    # -> 'derived'
                               d.base_print_var       # -> 'derived'
       In the above code, the class variable @@var is indeed "shared" by
       the Base and Derived classes. However, now see what happens when a
       child class creates the variable first:
            class Base
              def initialize;     @@var = 'base'; end
              def base_set_var;   @@var = 'base'; end
              def base_print_var; puts @@var;     end
            end

            class Derived < Base
              def initialize;        @@var = 'derived'; super; end #changed
              def derived_set_var;   @@var = 'derived';        end
              def derived_print_var; puts @@var;               end
            end

            d = Derived.new
            d.base_set_var;    d.derived_print_var    # -> 'derived'
                               d.base_print_var       # -> 'base'
            d.derived_set_var; d.derived_print_var    # -> 'derived'
                               d.base_print_var       # -> 'base'
       In this case, the parent and child classes have two independent
       class variables with identical names.

   20. Substituting backslashes may be tricky. Example:
            str = 'a\b\c'                     # -> a\b\c
            puts str.gsub(/\\/,'\\\\')        # -> a\b\c
            puts str.gsub(/\\/,'\\\\\\')      # -> a\\b\\c
            puts str.gsub(/\\/,'\\\\\\\\')    # -> a\\b\\c
            puts str.gsub(/\\/) { '\\\\' }    # -> a\\b\\c
            puts str.gsub(/\\/, '\&\&')       # -> a\\b\\c

Things That Are Good to Know :-)

    a. In Ruby the "self assignment operator" goes beyond "+=, -=, *=,
       /=, %=". In particular, operators such as "||=" also exist (but
       currently not for a class variable if it is not yet defined; this
       may change in the future). Please see Table 18.4 in the
       "Programming Ruby" book for the complete list.

    b. For a "cookbook" with many algorithm and code examples, consider
       "PLEAC-Ruby" (http://pleac.sourceforge.net/pleac_ruby/t1.html).

    c. For extensive numerical computations, consider "Numerical Ruby"
       (http://www.ir.isas.ac.jp/~masa/ruby/index-e.html).

    d. For (numerical) arrays which consume a large amount of memory
       and/or CPU time, consider "NArray" which is part of the Numerical
       Ruby (http://www.ir.isas.ac.jp/~masa/ruby/na/SPEC.en).

    e. For speeding up some parts of your Ruby code by writing them in C,
       consider "Inline" (http://sourceforge.net/projects/rubyinline/).

    f. For Ruby to C translation, consider "rb2c"
       (http://easter.kuee.kyoto-u.ac.jp/~hiwada/ruby/rb2c/).

    g. For Ruby and C/C++ integration, consider "SWIG"
       (http://www.swig.org/).

    h. For Ruby and Java integration, consider "JRuby"
       (http://jruby.sourceforge.net/).

    i. For embedding Python in Ruby, consider "Ruby/Python"
       (http://www.ruby-lang.org/en/raa-list.rhtml?name=Ruby%2FPython).

    j. For embedding Lua in Ruby, consider "Ruby-Lua"
       (http://ruby-lua.unolotiene.com/ruby-lua.whtm).

    k. For creating a stand-alone (Windows) executable, consider "exerb"
       (http://exerb.sourceforge.jp/index.en.html).

    l. For manipulating raw bits, instead of using Fixnum's, consider
       "BitVector"
       (http://www.ce.chalmers.se/~feldt/ruby/extensions/bitvector/).

     * For comments on this list, you may e-mail me directly at
       billtj@glue.umd.edu.
     _________________________________________________________________

   Last updated: Nov 24, 2002.
   This list itself is available at
   http://www.glue.umd.edu/~billtj/ruby.html.
   The plain text format is produced from the HTML format with "lynx
   -dump -nolist" (and some minor editing).
     _________________________________________________________________


In This Thread

Prev Next