[#376274] Best Linux Distro for Ruby? — Nick Hird <boondox@...>

What are some of the better linux distro's for ruby development? I know

15 messages 2011/01/02

[#376329] Is singleton class of an object already created? — Samnang Chhun <samnang.chhun@...>

I would like to know is there any ways to check is singleton class of an

12 messages 2011/01/04

[#376333] Threading in ruby — "Vishnu I." <pathsny@...>

Hi

13 messages 2011/01/04
[#376335] Re: Threading in ruby — Robert Klemme <shortcutter@...> 2011/01/04

On Tue, Jan 4, 2011 at 8:41 AM, Vishnu I. <pathsny@gmail.com> wrote:

[#376339] ripl - an irb alternative - 0.3.0 released — ghorner <gabriel.horner@...>

ripl, a light modular alternative to irb, has reached 0.3.0. ripl

32 messages 2011/01/04

[#376382] Class Initialization? — Kedar Mhaswade <kedar.mhaswade@...>

I have a class and two class methods: self.encode and self.decode. The

14 messages 2011/01/05
[#376385] Re: Class Initialization? — Andrew Wagner <wagner.andrew@...> 2011/01/05

On Wed, Jan 5, 2011 at 9:33 AM, Kedar Mhaswade <kedar.mhaswade@gmail.com>wrote:

[#376388] Petition to add Metasploit Project as Ruby success story — Christian Kirsch <Christian_Kirsch@...7.com>

I noticed the Ruby success stories on the Ruby website. I would like to mak=

10 messages 2011/01/05

[#376453] Block variable - How is it read in English? — SW Engineer <abder.rahman.ali@...>

Following the "Ruby on Rails Tutorial", and under section "6.1.1

16 messages 2011/01/06

[#376574] Best way for Array#find+transform ? — "Jonas Pfenniger (zimbatm)" <jonas@...>

There is a pattern that I'm using quite regularly, but I'm not

17 messages 2011/01/08
[#376575] Re: Best way for Array#find+transform ? — Anurag Priyam <anurag08priyam@...> 2011/01/08

> I know I can come up with a new method on Array that would shorten this t=

[#376576] Re: Best way for Array#find+transform ? — Anurag Priyam <anurag08priyam@...> 2011/01/08

> paths.map{|path| File.join(path, filename)}.select{|name| File.exist?(path)}

[#376577] Re: Best way for Array#find+transform ? — "Jonas Pfenniger (zimbatm)" <jonas@...> 2011/01/09

2011/1/8 Anurag Priyam <anurag08priyam@gmail.com>:

[#376579] Re: Best way for Array#find+transform ? — David J. Hamilton <groups@...> 2011/01/09

Excerpts from Jonas Pfenniger (zimbatm)'s message of Sat Jan 08 16:05:05 -0800 2011:

[#376586] Re: Best way for Array#find+transform ? — "Jonas Pfenniger (zimbatm)" <jonas@...> 2011/01/09

2011/1/9 David J. Hamilton <groups@hjdivad.com>:

[#376606] Re: Best way for Array#find+transform ? — David J. Hamilton <groups@...> 2011/01/10

Excerpts from Jonas Pfenniger (zimbatm)'s message of Sun Jan 09 04:08:10 -0800 2011:

[#376680] Parallel Assignments and Elegance/Complexity Ratio. — Kedar Mhaswade <kedar.mhaswade@...>

In SICP, I read that "Programs should be written for people to read, and

15 messages 2011/01/11
[#376697] Re: Parallel Assignments and Elegance/Complexity Ratio. — Josh Cheek <josh.cheek@...> 2011/01/11

On Tue, Jan 11, 2011 at 8:29 AM, Kedar Mhaswade <kedar.mhaswade@gmail.com>wrote:

[#376682] JRuby 1.6.0.RC1 released — Thomas E Enebo <tom.enebo@...>

The JRuby community is pleased to announce the release of JRuby 1.6.0.RC1.

14 messages 2011/01/11

[#376744] Case statements - Just beautification — flebber <flebber.crue@...>

I just want to clarify case statements the name after the word case is

10 messages 2011/01/12

[#376792] Ruby is interpreted and scripting language? — Sai Babu <sateesh.mca09@...>

I am ruby fresher.

16 messages 2011/01/13

[#376855] Retrieving and copying element from array — Simon Harrison <simon@...>

If I have an array like this:

11 messages 2011/01/13

[#376898] What are your ruby rough cuts ? — "Jonas Pfenniger (zimbatm)" <jonas@...>

Hi rubyists,

32 messages 2011/01/14
[#376930] Re: [poll] What are your ruby rough cuts ? — David Masover <ninja@...> 2011/01/15

On Friday, January 14, 2011 07:34:04 am Jonas Pfenniger (zimbatm) wrote:

[#376937] Re: What are your ruby rough cuts ? — Joseph Lenton <jl235@...> 2011/01/15

David Masover wrote in post #975080:

[#376959] Why Quby? (was Re: What are your ruby rough cuts ?) — David Masover <ninja@...> 2011/01/15

On Saturday, January 15, 2011 04:42:58 am Joseph Lenton wrote:

[#377020] Obscure syntax error — Rolf Timmermans <molfie@...>

Hi all,

16 messages 2011/01/17

[#377052] Calling by Reference - Two Questions — Mike Stephens <rubfor@...>

I know I'm not the first person to get stumped by how to get Ruby to

15 messages 2011/01/18

[#377072] The most recommended way of naming methods in Ruby — Edmond Kachale <edmond.kachale@...>

Rubists,

14 messages 2011/01/18
[#377082] Re: The most recommended way of naming methods in Ruby — Phillip Gawlowski <cmdjackryan@...> 2011/01/18

On Tue, Jan 18, 2011 at 9:16 AM, Edmond Kachale

[#377121] Improving performance of hash math — dblock <dblockdotorg@...>

I am trying to improve performance of Euclidian distance between two

13 messages 2011/01/19

[#377226] Totally lost in learning Ruby — Hilary Bailey <my77elephants@...>

This is my second attempt to understand Ruby. I completely read 1)

61 messages 2011/01/21
[#378239] Re: Totally lost in learning Ruby — Hilary Bailey <my77elephants@...> 2011/02/08

Hi everybody,

[#378246] Re: Totally lost in learning Ruby — Robert Klemme <shortcutter@...> 2011/02/08

On Tue, Feb 8, 2011 at 3:16 AM, Hilary Bailey <my77elephants@gmail.com> wro=

[#377236] using gems installed via 'sudo gem install' — "Piotr S." <thisredoned@...>

I've installed ruby-opengl through sudo gem install because there were

15 messages 2011/01/21

[#377362] pg gem 0.10.1 wth Ruby 1.9.2 does not work with method @pg_conn.exec_prepared(stmt_name, parameters) — Zeno Davatz <zdavatz@...>

Hi

9 messages 2011/01/24

[#377388] The finer points of postfix conditionals. — Jon Leighton <j@...>

Hi,

13 messages 2011/01/24

[#377411] Obtain data from .csv — Kamarulnizam Rahim <niezam54@...>

Sample of .csv file:

19 messages 2011/01/25

[#377609] why is overloading invalid in ruby. — Ted Flethuseo <flethuseo@...>

I don't understand why when I try to overload I get an error. Can I

36 messages 2011/01/27

[#377645] If you had the choice between Ruby & Groovy — Noah Cutler <sit1way@...>

Hey All.

15 messages 2011/01/28

[#377650] IDE? — <johan.tempelman@...>

Hi,

13 messages 2011/01/28

[#377703] Zlib::GzipReader and multiple compressed blobs in a single stream — Jos Backus <jos@...>

Hi,

11 messages 2011/01/28

[#377761] New to programming AND new to Ruby — "Cassandra K." <cassandra.k@...>

Hello. I am trying to teach myself Ruby. I have no background in

13 messages 2011/01/31

[#377785] 2011: Which Ruby books have you read? And which would you recommend? — "Aston J." <azzzz@...>

I know there are a lot of threads about books, but some of them are as

16 messages 2011/01/31

[#377800] How to know the exit status within at_exit() block? — Iñaki Baz Castillo <ibc@...>

Hi, my program invokes "exit true" or "exit false" and I want to catch

17 messages 2011/01/31

Re: Problem: use case stmt on object's class in simple test

From: RichardOnRails <RichardDummyMailbox58407@...>
Date: 2011-01-27 03:06:15 UTC
List: ruby-talk #377570
On Jan 26, 7:10=A0pm, "Aaron D. Gifford" <astound...@gmail.com> wrote:
> user@host:/path$ irb
> irb(main):001:0> a =3D "Foo"
> =3D> "Foo"
> irb(main):002:0> a.class =3D=3D=3D String
> =3D> false
> irb(main):003:0> a =3D=3D=3D String
> =3D> false
> irb(main):004:0> a.class =3D=3D=3D String.class
> =3D> false
> irb(main):005:0> a
> =3D> "Foo"
> irb(main):006:0> a.inspect
> =3D> "\"Foo\""
> irb(main):007:0> String.inspect
> =3D> "String"
> irb(main):008:0> case a
> irb(main):009:1> when String
> irb(main):010:1> puts 'string'
> irb(main):011:1> else
> irb(main):012:1* puts 'not'
> irb(main):013:1> end
> string
> =3D> nil
> irb(main):014:0> String =3D=3D=3D a
> =3D> true
> irb(main):015:0> a =3D=3D=3D String
> =3D> false
> irb(main):016:0> root@secure:/usr/ports# irb
> irb(main):001:0> str =3D "a string"
> =3D> "a string"
> irb(main):002:0> str.class
> =3D> String
> irb(main):003:0> String =3D=3D=3D str.class
> =3D> false
> irb(main):004:0> String =3D=3D=3D str
> =3D> true
> irb(main):005:0> case str.class
> irb(main):006:1> when String
> irb(main):007:1> =A0 puts 'it is a string'
> irb(main):008:1> else
> irb(main):009:1* =A0 puts 'else executed'
> irb(main):010:1> end
> else executed
> =3D> nil
> irb(main):011:0> case str
> irb(main):012:1> when String
> irb(main):013:1> =A0 puts 'it is a string'
> irb(main):014:1> else
> irb(main):015:1* =A0 puts 'else executed'
> irb(main):016:1> end
> it is a string
> =3D> nil
> irb(main):017:0>
>
> > =A0Why isn't the "when String" statement executed?
>
> I believe case/when uses the when object's =3D=3D=3D method for matching,
> and as you can see from the above irb session, String =3D=3D=3D "a
> string".class evaluates to false. =A0Hence your code doesn't work like
> you expected.
>
> However, if you change to hash[key] instead of hash[key].class, a
> direct comparison to the class object should work (note the String =3D=3D=
=3D
> "a string" evaluates to true).
>
> Note that "a string" =3D=3D=3D String evaluates to false even though "a
> string" =3D=3D=3D String evaluates to true. =A0That way case String when =
"a
> string" won't match but case "a string" when String will. =A0(Which
> totally makes sense in the context of case/when.)
>
> I'm sure I read a great blog post or discussion on this very thing in
> the past on the web, one that explains the gory details about exactly
> why case/when was designed to work this way. =A0It currently slips my
> mind.
>
> Anyone got a good URL for an article/post like that?
>
> Aaron out.

Hey Aaron,

You scored a triple. I should say you scored 3 homers.  In order of
importance on my grading scale:

1. You solved my problem: Lose the ".class"

2. You showed me that using IRB for experimenting like this is far
better than littering one's code with debugging statements.

3. You reminded me to RTFM!  Actually, I rotate between books, PDFs
and blogs on Ruby, Rails, CSS, RSpec, etc. all the time.  But as I
encountered this unfathomable situation, I didn't do what I've now
done: Consult PickAxe (2nd ed., 2005), which confirmed your belief
that case uses =3D=3D=3D for a comparison of the case parameter and when
arguments.

Many thanks for your deep and insightful solution to my question.

Best wishes,
Richard


In This Thread

Prev Next