Simple question re: ruby warning message

I just set up my first ternary operator expression, and got a warning
from Ruby, as a reward! I don’t see what the problem might be:

The expression:
db_type= ‘n’ ? db = @nodes_h : db = @links_h

The warning:
…/lib/setnet/SN.rb:781: warning: string literal in condition

I use string literals all the time in case statements, and other places,
and have never had this objection.

Can someone explain the problem to me? I cannot imagine what it might
be.

Thanks!

t.

Tom C., MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< [email protected] >> (email)
<< TomCloyd.com >> (website)
<< sleightmind.wordpress.com >> (mental health weblog)

Alle Thursday 19 February 2009, Tom C. ha scritto:

and have never had this objection.

Can someone explain the problem to me? I cannot imagine what it might be.

Thanks!

t.

Ruby thinks you are likely to have written = instead of == in the
condition.

Stefano

Stefano C. wrote:

Ruby thinks you are likely to have written = instead of == in the condition.

Stefano

Geee, I wonder why? Good Lord!

A real newbie mistake!

t.

Tom C., MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< [email protected] >> (email)
<< TomCloyd.com >> (website)
<< sleightmind.wordpress.com >> (mental health weblog)

From: Tom C. [mailto:[email protected]]

db_type= ‘n’ ? db = @nodes_h : db = @links_h

    ^^^

try replacing = with ==

From: Peña, Botp [mailto:[email protected]]

From: Tom C. [mailto:[email protected]]

# db_type= ‘n’ ? db = @nodes_h : db = @links_h

^^^

try replacing = with ==

or maybe better do some arrangement, like eg,

db = db_type==‘n’ ? @nodes_h : @links_h

and wc clearly shows diff bw = and ==

On Thu, Feb 19, 2009 at 4:19 AM, vimal [email protected]
wrote:

end

Which, since any ruby object except nil and false is truthy is
effectively
the same thing as

db_type = db = @nodes.h

which makes db_type, and db reference the same object, which is the
return
valud of @nodes.h


Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale

On Feb 19, 1:59 pm, Tom C. [email protected] wrote:

I just set up my first ternary operator expression, and got a warning
from Ruby, as a reward! I don’t see what the problem might be:

The expression:
db_type= ‘n’ ? db = @nodes_h : db = @links_h

I guess your representation (db_type= ‘n’)
doesn’t look like a condition, its like performing an assignment.

If its a condition it should be db_type == ‘n’

Your representation (db_type= ‘n’ ? db = @nodes_h : db = @links_h)

assigns db_type the result of the following:

checks a condition ‘n’
if true
db = @nodes_h
else
db = @links_h
end

Regards,
Vimal Das