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] <javascript:>>wrote:
>
>> I originally brought this up in: 
>> 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 
>> [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