[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Getting (var = false) to return true?

Joe Ruby

10/27/2006 7:59:00 AM

In Rails (it's more of a Ruby question though ;) ), I have:

def before_update
@var = get_old_var_value
end

and if get_old_var_value returns a false value it causes the update to
cancel. Is there some function that'll return true after setting the
var? Something like, oh I dunno, set_var(:var, get_old_var_value).
Rails' write_attribute also seems to return the value of the var (so
false causes problems with it too). I know I can just simply do this:

def before_update
@var = get_old_var_value
true
end

But I'm just curious if there are other approaches.

Thanks,
Joe

--
Posted via http://www.ruby-....

7 Answers

Farrel Lifson

10/27/2006 8:13:00 AM

0

On 27/10/06, Joe Ruby MUDCRAP-CE <joeat303@yahoo.com> wrote:
> In Rails (it's more of a Ruby question though ;) ), I have:
>
> def before_update
> @var = get_old_var_value
> end
>
> and if get_old_var_value returns a false value it causes the update to
> cancel. Is there some function that'll return true after setting the
> var? Something like, oh I dunno, set_var(:var, get_old_var_value).
> Rails' write_attribute also seems to return the value of the var (so
> false causes problems with it too). I know I can just simply do this:
>
> def before_update
> @var = get_old_var_value
> true
> end
>
> But I'm just curious if there are other approaches.
>
> Thanks,
> Joe
>
> --
> Posted via http://www.ruby-....

def before_update
@var = get_old_var_value || true
end

This returns get_old_var_value if it's not false (or nil) or true
otherwise. Is that what you need?

Farrel

Farrel Lifson

10/27/2006 8:19:00 AM

0

On 27/10/06, Farrel Lifson <farrel.lifson@gmail.com> wrote:
> On 27/10/06, Joe Ruby MUDCRAP-CE <joeat303@yahoo.com> wrote:
> > In Rails (it's more of a Ruby question though ;) ), I have:
> >
> > def before_update
> > @var = get_old_var_value
> > end
> >
> > and if get_old_var_value returns a false value it causes the update to
> > cancel. Is there some function that'll return true after setting the
> > var? Something like, oh I dunno, set_var(:var, get_old_var_value).
> > Rails' write_attribute also seems to return the value of the var (so
> > false causes problems with it too). I know I can just simply do this:
> >
> > def before_update
> > @var = get_old_var_value
> > true
> > end
> >
> > But I'm just curious if there are other approaches.
> >
> > Thanks,
> > Joe
> >
> > --
> > Posted via http://www.ruby-....
>
> def before_update
> @var = get_old_var_value || true
> end
>
> This returns get_old_var_value if it's not false (or nil) or true
> otherwise. Is that what you need?
>
> Farrel
>
>

Whoops there's a syntax error in my solution. You want
(@var = get_old_var_value) || true
otherwise you risk setting @var to true when get_old_var is false.

Farrel

Joe Ruby

10/27/2006 8:19:00 AM

0

Farrel Lifson wrote:
> On 27/10/06, Joe Ruby MUDCRAP-CE <joeat303@yahoo.com> wrote:
>> false causes problems with it too). I know I can just simply do this:
>>
>> --
>> Posted via http://www.ruby-....
>
> def before_update
> @var = get_old_var_value || true
> end
>
> This returns get_old_var_value if it's not false (or nil) or true
> otherwise. Is that what you need?
>
> Farrel

Nah, I need the value returned from the function to always be true. Hmm,
maybe this will work:

def before_update
(@var = get_old_var_value) || true
end

Joe

--
Posted via http://www.ruby-....

Farrel Lifson

10/27/2006 8:27:00 AM

0

> Nah, I need the value returned from the function to always be true. Hmm,
> maybe this will work:

Ruby considers any object that is not false or nil to be true.

Joe Ruby

10/27/2006 8:48:00 AM

0

Farrel Lifson wrote:
>> Nah, I need the value returned from the function to always be true. Hmm,
>> maybe this will work:
>
> Ruby considers any object that is not false or nil to be true.

Yup.

--
Posted via http://www.ruby-....

Devin Mullins

10/27/2006 11:35:00 AM

0

Joe Ruby MUDCRAP-CE wrote:
> (@var = get_old_var_value) || true
Err... why is that better than
@var = get_old_var_value; true
?

Devin

Robert Klemme

10/27/2006 5:00:00 PM

0

Joe Ruby MUDCRAP-CE wrote:
> Farrel Lifson wrote:
>> On 27/10/06, Joe Ruby MUDCRAP-CE <joeat303@yahoo.com> wrote:
>>> false causes problems with it too). I know I can just simply do this:
>>>
>>> --
>>> Posted via http://www.ruby-....
>> def before_update
>> @var = get_old_var_value || true
>> end
>>
>> This returns get_old_var_value if it's not false (or nil) or true
>> otherwise. Is that what you need?
>>
>> Farrel
>
> Nah, I need the value returned from the function to always be true. Hmm,
> maybe this will work:
>
> def before_update
> (@var = get_old_var_value) || true
> end

In that case the code is too complicated. Rather use

def before_update
@var = get_old_var_value
true
end

There is no point in having "||" or "or" here.

robert