The problem (I think) with that is that "#users" could be an expensive call 
you only wish to make once.  And I don't want to get into memoizing...

<% account.expensive_call_for_users.any? && 
account.expensive_call_for_users.tap ... %>


On Friday, January 25, 2013 2:11:18 PM UTC-8, Godfrey Chan wrote:
>
> Actually, on second thought, this would do exactly what you wanted, and 
> It's Just Ruby (tm):
>
> <% account.users.any? && account.users.tap do |users| %>
>
>
>   # ...
> <% end %>
>
>
>
>
> On Fri, Jan 25, 2013 at 2:09 PM, Ngan <[email protected] <javascript:>>wrote:
>
>> Thank you Godfrey! This does solve 99% of my cases!
>>
>> @Andrew Using if, the variable "users" is now available everywhere...I 
>> only want it available in my block.
>>
>>
>> On Friday, January 25, 2013 2:05:31 PM UTC-8, Godfrey Chan wrote:
>>
>>> Object#try takes a block. It'll probably take care of most simple cases 
>>> for you:
>>>
>>> <% account.owner.try do |user| %>
>>>   <!-- This is shown only if account.owner is not nil? -->
>>> <% end %>
>>>
>>>
>>>
>>> On Fri, Jan 25, 2013 at 1:17 PM, Ngan <[email protected]> wrote:
>>>
>>>> I originally brought this up in: https://github.com/rails/**
>>>> rails/issues/9067 <https://github.com/rails/rails/issues/9067>
>>>>
>>>> Rails paved the way for Object#tap and Object#try.**..I'd like to 
>>>> propose Object#tap_if and its counterpart,Object#tap_unless.
>>>>
>>>> I've been following 37signals conventions of tapping variables in the 
>>>> views:
>>>>
>>>> <% account.owner.tap do |user| %>
>>>>   ...
>>>> <% end %>
>>>>
>>>> But, I find myself having to do this a lot...
>>>>
>>>> <% account.owner.tap do |user| %>
>>>>   <% if user %>
>>>>     ...
>>>>   <% end %>
>>>> <% end %>
>>>>
>>>> It would be great if we could do...
>>>>
>>>> <% account.owner.tap_if(:present?**) do |user| %>
>>>>   ...
>>>> <% end %>
>>>>
>>>> <% account.users.tap_if(:any?) do |user| %>
>>>>   ...
>>>> <% end %>
>>>>
>>>> The block would only yield if the method evals to true.
>>>> Carlos mentioned that you can add an "if account.owner.present?" at the 
>>>> end...
>>>> But there are times when the account.owner (or something else) call is 
>>>> expensive and you don't want to call it twice.
>>>>
>>>> Any feedback would be much appreciated.  Thanks!
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Ruby on Rails: Core" group.
>>>> To post to this group, send email to rubyonra...@googlegroups.**com.
>>>> To unsubscribe from this group, send email to rubyonrails-co...@**
>>>> googlegroups.com.
>>>>
>>>> Visit this group at http://groups.google.com/**
>>>> group/rubyonrails-core?hl=en<http://groups.google.com/group/rubyonrails-core?hl=en>
>>>> .
>>>> For more options, visit 
>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>>> .
>>>>  
>>>>  
>>>>
>>>
>>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Ruby on Rails: Core" group.
>> To post to this group, send email to 
>> [email protected]<javascript:>
>> .
>> To unsubscribe from this group, send email to 
>> [email protected] <javascript:>.
>> Visit this group at http://groups.google.com/group/rubyonrails-core?hl=en
>> .
>> For more options, visit https://groups.google.com/groups/opt_out.
>>  
>>  
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
Visit this group at http://groups.google.com/group/rubyonrails-core?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to