[#91151] Python 25 times as popular as Ruby !? — llothar@... (Lothar Scholz)

Hey,

112 messages 2004/02/01
[#91154] Re: Python 25 times as popular as Ruby !? — Dan Doel <djd15@...> 2004/02/01

Lothar Scholz wrote:

[#91197] ruby way to enumerate users — "Robert K." <anon@...>

Hi,

29 messages 2004/02/01
[#91200] Re: ruby way to enumerate users — "Robert Klemme" <bob.news@...> 2004/02/01

[#91210] Re: ruby way to enumerate users — "Robert K." <anon@...> 2004/02/01

>

[#91213] GUI toolkit — Robert <bobx@...>

Has the community decided on a "standard" Ruby GUI toolkit? I know the

21 messages 2004/02/01

[#91225] Rubyx (linux distro created using ruby) - Bootstrap volunteers required — Andrew Walrond <andrew@...>

Rubyx is almost ready to go public :)

11 messages 2004/02/01
[#91229] Re: Rubyx (linux distro created using ruby) - Bootstrap volunteers required — "Zach Dennis" <zdennis@...> 2004/02/01

I'm here to be used and abused, ever since the post on ./ I've put aside a

[#91251] Method Reflection — Benedikt Huber <benjovi@...>

I'm quite new to ruby and was amazed by the powerful reflection

12 messages 2004/02/02

[#91269] test::unit caller stack feature request — Simon Strandgaard <neoneye@...>

A typical call stack of mine look like the following.

18 messages 2004/02/02

[#91274] Silly question — Brad <BCoish@...>

All:

27 messages 2004/02/02

[#91286] code that has been reached — Simon Strandgaard <neoneye@...>

Does there exists a tool for Ruby which records which parts

28 messages 2004/02/02

[#91307] Ruby Web Application Framework Roundup — Gavin Kistner <gavin@...>

I'm trying to decide which Ruby web application framework to use (if

64 messages 2004/02/02
[#91312] Re: Ruby Web Application Framework Roundup — Kirk Haines <khaines@...> 2004/02/02

On Tue, 3 Feb 2004, Gavin Kistner wrote:

[#91317] Re: Ruby Web Application Framework Roundup — Chris Morris <chrismo@...> 2004/02/02

Kirk Haines wrote:

[#91322] Re: Ruby Web Application Framework Roundup — Kirk Haines <khaines@...> 2004/02/02

On Tue, 3 Feb 2004, Chris Morris wrote:

[#91411] Re: Ruby Web Application Framework Roundup — gm@... (George Moschovitis) 2004/02/03

paul vudmaska <paul@vudmaska.com> wrote in message news:<401ECA9F.4070903@vudmaska.com>...

[#91310] OpenGL — Martin larsson <morg@...>

Hello

12 messages 2004/02/02

[#91315] role pattern lib for ruby — shasckaw <shasckaw@...>

Hello there,

46 messages 2004/02/02
[#91349] Re: role pattern lib for ruby — "Its Me" <itsme213@...> 2004/02/02

See Ruby Object Teams http://sourceforge.net/projects/robjectteam/

[#91358] Re: role pattern lib for ruby — shasckaw <shasckaw@...> 2004/02/03

Thansk for the link, it looks interesting but it is perhaps too complex

[#91542] Re: role pattern lib for ruby — shasckaw <shasckaw@...> 2004/02/04

shasckaw wrote:

[#91543] what is aspect-oriented s/w? (was Re: role pattern lib for ruby) — Sam Roberts <sroberts@...> 2004/02/04

Is there a description of it somewhere?

[#91570] Re: what is aspect-oriented s/w? (was Re: role pattern lib for ruby) — Pit Capitain <pit@...> 2004/02/04

Sam Roberts wrote about Object Teams:

[#91571] Re: what is aspect-oriented s/w? (was Re: role pattern lib for ruby) — Pit Capitain <pit@...> 2004/02/04

Pit Capitain wrote:

[#91573] Re: what is aspect-oriented s/w? (was Re: role pattern lib for ru by) — Sam Roberts <sroberts@...> 2004/02/04

Well, that was some good links, but they're all pretty hand-wavy about

[#91593] Re: what is aspect-oriented s/w? (was Re: role pattern lib for ru by) — "T. Onoma" <transami@...> 2004/02/05

I think I can give a reasonable overall picture of AOP.

[#91323] Questions about stdout/stderr combining (for Windows & Linux) — Patrick Bennett <patrick.bennett@...>

I'm working on a build tool, and I need to execute various

12 messages 2004/02/02

[#91364] shell scripts in background (with &) - why would they stop? — Ruby Baby <ruby@...>

Shouldn't a Ruby script keep running if someone uses the "&" at the end of the command?

15 messages 2004/02/03

[#91407] RCR draft for enhanced "case..when..else..end" syntax — Guoliang Cao <gcao@...>

Hi,

41 messages 2004/02/03
[#91417] Re: RCR draft for enhanced "case..when..else..end" syntax — "Robert Klemme" <bob.news@...> 2004/02/03

[#91548] Re: RCR draft for enhanced "case..when..else..end" syntax — Austin Ziegler <austin@...> 2004/02/04

On Wed, 4 Feb 2004 00:45:07 +0900, Robert Klemme wrote:

[#91412] Image conversion ... — "Useko Netsumi" <usenets_remote_this@...>

Hi, is there any Ruby code snippets I can use to transform my photo to lower

29 messages 2004/02/03

[#91430] Arachno Ruby IDE — Yura Kloubakov <yura@...>

13 messages 2004/02/03

[#91435] ruby-serialport on Win32 — Stephan K舂per <Stephan.Kaemper@...>

Hi group,

19 messages 2004/02/03
[#91496] Re: ruby-serialport on Win32 — Mauricio Fern疣dez <batsman.geo@...> 2004/02/03

On Wed, Feb 04, 2004 at 02:15:04AM +0900, Stephan K舂per wrote:

[#91436] ARGV problems — tony summerfelt <snowzone5@...>

i seem to be having a problem with ARGV.

20 messages 2004/02/03

[#91488] eistein's riddle — "Ara.T.Howard" <Ara.T.Howard@...>

18 messages 2004/02/03

[#91565] New Computer, version, confusion — Ronald E Jeffries <ronjeffries@...>

I just got a new computer and need to get stuff moved over to it.

14 messages 2004/02/04

[#91590] An assimilators guide to Python? — "Josef 'Jupp' SCHUGT" <jupp@...>

Hi!

24 messages 2004/02/05

[#91626] HTML Parsing? — Martin Hart <martin@...>

20 messages 2004/02/05

[#91633] YAPV (Yet Another Pickaxe Version) — Gavin Kistner <gavin@...>

As promised in another thread, I am working on a new web version of the

29 messages 2004/02/05

[#91641] Fw: [XP] A Job Posting : Extreme Programmer needed. — Pit Capitain <pit@...>

I found this today on the extreme programming mailing list:

13 messages 2004/02/05

[#91652] impersonating ruby — "Robert K." <anon@...>

Hi,

14 messages 2004/02/05

[#91665] Is there any way to mark an object as "always in use" (specifically, in a C extension)? — Harry Ohlsen <harryo@...>

Some background ...

17 messages 2004/02/06

[#91680] mkfifo in Ruby 1.8? — "Basile Starynkevitch [news]" <basile-news@...>

Why is (the library call) mkfifo missing in Ruby 1.8? Is there a way

25 messages 2004/02/06
[#91735] Re: mkfifo in Ruby 1.8? — nobu.nokada@... 2004/02/07

Hi,

[#91737] pty.so: [BUG] Segmentation fault — Bob Gustafson <bobgus@...> 2004/02/07

I just installed ruby-1.8.1 and found this problem.

[#91743] Re: pty.so: [BUG] Segmentation fault — matz@... (Yukihiro Matsumoto) 2004/02/07

Hi,

[#91760] Re: pty.so: [BUG] Segmentation fault — Joel VanderWerf <vjoel@...> 2004/02/07

Yukihiro Matsumoto wrote:

[#91775] Re: pty.so: [BUG] Segmentation fault — nobu.nokada@... 2004/02/08

Hi,

[#91779] Re: pty.so: [BUG] Segmentation fault — Joel VanderWerf <vjoel@...> 2004/02/08

nobu.nokada@softhome.net wrote:

[#91682] Is 1.8.2 imminent? And detecting Rubyx version — Andrew Walrond <andrew@...>

I'm holding off an 'official' release of Rubyx (ruby based linux distro)

18 messages 2004/02/06

[#91710] Email parsing — Rove Monteux <rove.monteux@...>

Hi there.

16 messages 2004/02/06

[#91777] I卒m too dumb to program — Lester_t_linpord@... (Lester T. Linpord)

Because I危 a moron.

13 messages 2004/02/08

[#92507] Opinion: Ruby + OpenOffice.org — Daniel Carrera <dcarrera@...>

Hi guys,

17 messages 2004/02/09
[#92511] Re: Opinion: Ruby + OpenOffice.org — Bob Gustafson <bobgus@...> 2004/02/09

Check the latest issue of The Linux Journal. James Britt wrote an article

[#92631] ruby-dev summary: 22688-22826 — Masayoshi Takahashi <maki@...>

Hello all,

19 messages 2004/02/11

[#92649] (noob) cast string to array? — Koncept <user@...>

25 messages 2004/02/12

[#92692] ANN: Ruby Standard Library Documentation, v0.9.0 — Gavin Sinclair <gsinclair@...>

Hi folks,

12 messages 2004/02/12

[#92771] return from yielded block — "Ara.T.Howard" <Ara.T.Howard@...>

13 messages 2004/02/13

[#92986] A good way to do a book? — bobx@... (Bob)

http://www.sourcebeat.com/index.jsp

18 messages 2004/02/16

[#93039] Builtins RDoc tarball? — Gavin Kistner <gavin@...>

Is there a tar.gz that corresponds to

24 messages 2004/02/17
[#93042] Re: Builtins RDoc tarball? — James Britt <jamesUNDERBARb@...> 2004/02/17

Gavin Kistner wrote:

[#93048] Re: Builtins RDoc tarball? — Gavin Kistner <gavin@...> 2004/02/17

James Britt wrote:

[#93074] Re: Builtins RDoc tarball? — James Britt <jamesUNDERBARb@...> 2004/02/17

Gavin Kistner wrote:

[#93078] Re: Builtins RDoc tarball? — James Britt <jamesUNDERBARb@...> 2004/02/18

James Britt wrote:

[#93113] Re: Builtins RDoc tarball? — Gavin Kistner <gavin@...> 2004/02/18

James Britt wrote:

[#93118] Re: Builtins RDoc tarball? — Dave Thomas <dave@...> 2004/02/18

[#93055] Why's (Poignant) Guide to Ruby, Chapters 1 to 3 — why the lucky stiff <ruby-talk@...>

Greetings. Man, I'm giddy about this announcement. My blood is visibly

24 messages 2004/02/17

[#93104] how to raise warning? — Szymon Drejewicz <drejewic@...>

How to raise warning?

20 messages 2004/02/18

[#93162] speed benchmarks comparing Ruby to Py/Perl/PHP/etc? — Ruby Baby <ruby@...>

I know Ruby wasn't created to make a fast-running language.

12 messages 2004/02/19

[#93180] Ruby to Parrot compiler — Mark <msparshatt@...>

Is there anyone working on a compiler for compiling Ruby code to work on

28 messages 2004/02/19

[#93193] proposal: let kind_of take more arguments — Simon Strandgaard <neoneye@...>

It just hit me.. why not let kind_of? take more arguments?

21 messages 2004/02/20

[#93243] Instance variable capitalization — Jim Freeze <jim@...>

I have a question about how ruby-like is it to capitalize

12 messages 2004/02/20

[#93260] Introducing myself and my interest in ruby — Larry Felton Johnson <larryj@...>

This is just a note introducing myself to the list, and

75 messages 2004/02/20
[#93855] Re: Introducing myself and my interest in ruby — gabriele renzi <surrender_it@...1.vip.ukl.yahoo.com> 2004/02/27

il Sat, 28 Feb 2004 02:32:13 +0900, Mark Hubbart <discord@mac.com> ha

[#93857] Re: Introducing myself and my interest in ruby — Mark Hubbart <discord@...> 2004/02/27

On Feb 27, 2004, at 11:19 AM, gabriele renzi wrote:

[#93858] Re: Introducing myself and my interest in ruby — Hal Fulton <hal9000@...> 2004/02/27

Mark Hubbart wrote:

[#93874] Ruby Compiler [was Introducing myself and my interest in ruby] — "Curt Hibbs" <curt@...> 2004/02/28

Hal Fulton wrote:

[#93936] FreeRIDE 0.6.0-1 -- a Windows Update — "Curt Hibbs" <curt@...> 2004/02/29

Until now, the FreeRIDE debugger did not work under windows. We now have a

[#93298] Puzzling... — "Ruby Tuesday" <rubytuezdayz@...>

Hi, I have these 2 files, one work and the other does not.

41 messages 2004/02/20

[#93321] Calling JDBC from with Ruby — Michael Davis <mdavis@...>

I am building a web application for a client in Ruby. The application is working but now needs to access data using JDBC. My client is requiring both ODBC (for Windows) and JDBC (for Sun) access to data. I am looking for an example of how to use JDBC from within Ruby. I have looked at Jruby but would prefer to write my own code rather than rely on a third party add-on that is beta, especially one that has not been updated in a while. If I write the data access portion in Java that uses JDBC, can I then write a Java wrapper that would allow Ruby to call the Java methods? Are there any examples available showing how to call a Java method from within Ruby similar to the C interface to Ruby?

21 messages 2004/02/21

[#93374] Tycho - A PIM under development — Hal Fulton <hal9000@...>

Hello, all.

17 messages 2004/02/21

[#93425] ANN: PLD RPMs of rake and ruby-dbi and a plea to packagers — Aredridel <aredridel@...>

I've just created packages (including .spec files to be used as

10 messages 2004/02/22

[#93459] Appropriate use of camelCase — Gavin Kistner <gavin@...>

Following the 'instance variable capitalization' thread, I'm convinced

46 messages 2004/02/23
[#93516] Re: Appropriate use of camelCase — "David A. Black" <dblack@...> 2004/02/24

Hi --

[#93523] Re: Appropriate use of camelCase — "NAKAMURA, Hiroshi" <nahi@...> 2004/02/24

Chunky bacon!

[#93526] Re: Appropriate use of camelCase — Kirk Haines <khaines@...> 2004/02/24

On Tue, 24 Feb 2004, NAKAMURA, Hiroshi wrote:

[#93464] Need examples comparing Ruby to Python — David MacQuigg <dmq@...>

I'm putting together a web page comparing Ruby to Python, and I need

35 messages 2004/02/23

[#93485] Ruby-gtk ? — Martin Hart <martin@...>

16 messages 2004/02/23

[#93632] proposal: debug keyword — Simon Strandgaard <neoneye@...>

A debug keyword which enables debug-output for a specific method.

13 messages 2004/02/25

[#93654] Operators +, += and = in Ruby 2 — "Robert Klemme" <bob.news@...>

12 messages 2004/02/25

[#93732] Why don't $global and @instance variables need declaration? — David Garamond <lists@...6.isreserved.com>

Sorry if the answer is obvious, but I can't find a satisfactory or more

10 messages 2004/02/26

[#93734] language contest ==> unit test framework from lisp to ruby — Piergiuliano Bossi <p_bossi_AGAINST_SPAM@...>

A few days ago I made a post (rubytalk:92963 ==> [2]) about the

13 messages 2004/02/26

[#93865] UnboundMethod#hash apparently broken in 1.8.1 — "Robert Klemme" <bob.news@...>

18 messages 2004/02/27

RCR draft for enhanced "case..when..else..end" syntax

From: Guoliang Cao <gcao@...>
Date: 2004-02-03 14:35:25 UTC
List: ruby-talk #91407
Hi,

I'm thinking of submitting a RCR. Here is the draft. Comments are welcome.

Thanks,
Cao

====================================================

RCR title:  An enhanced case..when..else..end syntax

This RCR involves (check all that apply):
... a new feature                   x
... a syntax change                 x
... refactoring only            
... backwards incompatibility

Abstract....
  This RCR proposes an enhanced case..when..else..end syntax.
  
Problem....
  It's a very common task to group code based on a combination of values of
  multiple variables. However, the current Ruby syntax only allows one
  expression/variable being used in "case" clause. People have to use
  if..else..end which requires more typing and is less intuitive.
  
  For example, suppose I'm generating a image, the color of each point is
  defined based on its x and y coordinates.

       0 ... 50...100...200
     0 +----------------+
       |      white     |
    50 |----------------|
       |     |  grey    |
   100 |blue +----------|
       |     |  black   |
   150 |----------------|
       |      white     |
   200 +----------------+


  Use if..else..end:

  if 0..50 === x || 150..200 === x
    color = white
  elsif 0..50 === y
    color = blue
  elsif 50..100 === x and 50..200 === y
    color = grey
  else
    color = black
  end

  Use new case..when..else..end:
   
  case x : y
    when 0..50, 150..200             # x in 0..50 or 150..200
      color = white
    when _ : 0..50                   # y in 0..50
      color = blue
    when 50..100 : 50..200           # x in 50..100 and y in 50..200
      color = grey
    else                             # otherwise
      color = black
  end

  Note: If the color is only dependent on x, we can use the current "case"
  syntax. However if it's dependent on more than one variable, "case" is
  incapable of handling it.

Proposal....
  The enhanced syntax looks like below:

  case expr1 : expr2
    when expr3 : _ : expr4
      do_something
    when expr5
      do_different_thing
    else
      do_default_thing
  end

  1. "case" takes 0 or any number of expressions separated by ":";
  
  If there's no expression, each clause separated by ":" in "when" is
  evaluated to true or false and ":" is treated the same way as "and".

  2. "when" takes 1 or more clauses separated by ":"; each clause by itself
  can be separated by "," (this is supported in current syntax).
  
  If there are less clauses than the number of "case" expressions, the
  rest of "case" expressions are not evaluated.

  If there are more clauses than the number of "case" expressions, the
  rest of "when" clauses are evaluated to true or false. ":" is treated
  the same way as "and"

  3. "else" remains the same.

  4. "_" means skipping evaluation of the corresponding "case" expression.


Analysis....
  What benefits do we get?
  1. It's a more general form, which means it can be used much wider than
  what "case..when" is used for today;
  2. less typing; there's no need to type x, y, === in the when clause;
  3. this syntax change is backward compatible with Ruby 1.x
  
Implementation....
  Because this request proposes syntax enhancement, it can't be achieved
  without changing Ruby interpreter.
  
  The code below demonstrated the idea by extending Object class and
  utilizing thread-local variables. It uses "ccase..cwhen..celse..end" to
  simulate the proposed syntax. It uses "," to separate ccase/cwhen clauses
  which are just arguments. It uses "true" instead of "_" to indicate
  skipping evaluation.
  

  Source:

#!/usr/bin/ruby
#
# To utilize Ruby's existing functionality to demonstrate the idea, I'm doing
# this:
# add instance methods "ccase", "cwhen", "celse" to class Object which is the
# top one in the hierarchy so all classes inherit them.
#
# Its usage is like this:
#   ccase a, b do
#     cwhen [1,2], 1..3 do
#       ...
#     end
#     cwhen 3, true do
#       ...
#     end
#     celse do
#       ...
#     end
#   end
#
# Problems so far:
# 1. how to let "cwhen" method body to access "ccase" arguments and
#    intermediate objects;
#    Solution: use thread-local variable
#
# 2. how to make it work in multi-threaded program;
#    Solution: use thread-local variable
#
# 3. "do...end" or "{...}" is needed to pass block to ccase/cwhen/celse.
#    Solution: ???
#
# ccase = "customized case"
# cwhen = "customized when"
# celse = "customized else"
#

class Object

# customized case
def ccase arg0, *args
  begin
    args.unshift arg0
    Thread.current["in_ccase"] = true
    Thread.current["ccase_args"] = args
    Thread.current["hit_cwhen"] = nil
    if block_given?
      yield
    end
  ensure
    Thread.current["in_ccase"] = nil
    Thread.current["ccase_args"] = nil
    Thread.current["hit_cwhen"] = nil
  end
end

# customized when
def cwhen arg0, *args
  # skip if already matched
  return if Thread.current["hit_cwhen"]

  args.unshift arg0
  hit = true   # hit or not?
  ccase_args = Thread.current["ccase_args"]
  
  if ccase_args and ccase_args.length > 0
    ccase_args.each_index do |idx|
      ccase_arg = ccase_args[idx]
      cwhen_arg = args[idx]

      # cwhen_arg is not present, hit = true
      # cwhen_arg is true and ccase_arg is not false, hit = true
      # ccase_arg is not present, hit = if cwhen_arg evaluates to true
      # both ccase_arg and cwhen_arg are present, hit = if cwhen_arg === ccase_arg
      if (not cwhen_arg) or (not ccase_arg and cwhen_arg) or (cwhen_arg == true and not ccase_arg == false) or (cwhen_arg === ccase_arg)
        # hit = true
      elsif cwhen_arg.is_a? Array
        hit = false
        cwhen_arg.each do |arg|
          if arg === ccase_arg
            hit = true
            break
          end
        end
      else
        hit = false
      end
      s = if cwhen_arg.nil? then "nil" else cwhen_arg.to_s end
      s1 = if ccase_arg.nil? then "nil" else ccase_arg.to_s end
      print "#{s} === #{s1} : #{hit.to_s}\n"

      break if not hit
    end
  else
    args.each {|arg| hit &= arg}
  end

  return if not hit
  Thread.current["hit_cwhen"] = true

  if block_given?
    yield
  end
end

# customized else to be combined with ccase/cwhen
def celse
  return if Thread.current["hit_cwhen"]
  if block_given?
    yield
  end
end

end

if __FILE__ == $0
  def test a,b,c
    ccase a,b,c do
      cwhen [1, 3, 6], 1..2 do
        # if a is in [1,3,6]  and  b === 1..2
        print "hit 1\n"
      end
      cwhen 4, 3, 1 do
        # if a === 4  and b === 4 and c === 1
        print "hit 2\n"
      end
      cwhen 5, true, 7 do
        # if a === 5  and  c === 7
        print "hit 3\n"
      end
      celse do
        # otherwise
        print "no hit\n"
      end
    end
  end

  test 1,2,3  # hit 1
  test 4,3,0  # no hit
  test 4,3,1  # hit 2
  test 5,6,7  # hit 3

end  


In This Thread

Prev Next