Re: Compound conditionals in case when statements? Syntax?
- From: John Joyce <dangerwillrobinsondanger@xxxxxxxxx>
- Date: Wed, 17 Oct 2007 12:14:17 +0900
On Oct 16, 2007, at 6:37 PM, Michael Fellinger wrote:
On 10/17/07, Randy Kramer <rhkramer@xxxxxxxxx> wrote:Adventerous? That's a strange middle name... ;)I need (or want ;-) to do something like the following:
when ((/^---\+\+ (.*)/) and (new_record == true))
I've tried a lot of variations, but either this just won't work, or I haven't
managed to guess the proper syntax. (I've also tried googling and searching
in the pickaxe(2).)
Aside: Maybe the compound won't work because one is what the pickaxe calls a
condition and the other is a comparison? But, I'm not sure which is which.
If this can't work, I'll try (I've been trying) a nested if statement, but
I'll ask about that in my next post. ;-)
this can't work for the simple reason that the objects given at 'when'
are being sent the === message with the object in 'case'. In your
'when' it's the result of the stuff in closures.
This generally is the job of 'if', just keep in mind that case/when is
for matching, if/else is for conditionals.
One roundabout way exists to make this work though:
class Proc
def ===(obj)
self[obj]
end
end
case 'foo'
when lambda{|e| new_record and /^---\+\+ (.*)/ === e }
puts :aye_match
else
puts :sorry_you_lose
end
This is generally only advised if your middle name is some form of
(Advent|Dang)erous, I won't be able to take responsibility for all
resulting damage. But also note that new_record being true or false
makes it simple to work with it without first comparing true/false
with true, the result won't change, true cannot become any more true.
a = true
# true
puts "hey" if a == true
hey
# nil
puts "hey" if a
hey
Hope this helps a little bit. Have fun with ruby!
^ manveru
.
- Prev by Date: Re: Mind giving a little help?
- Next by Date: Re: [ANN] One-Click Ruby Installer 186-26 Release Candidate 1
- Previous by thread: Re: recommendations for working with PostgreSQL
- Next by thread: Re: Compound conditionals in case when statements? Syntax?
- Index(es):
Relevant Pages
|