This is as testable as any helpers. This argument is moot.

On Monday, October 27, 2014 9:58:42 AM UTC-4, Abdelkader Boudih wrote:
>
> Helpers are testable! 
> Views should have no complex logic on them. 
>
> On 27 October 2014 11:40, Pier-Olivier Thibault <pot...@gmail.com 
> <javascript:>> wrote:
>
>> I am aware of the existence of helpers. But they are in no way a silver 
>> bullet to building HTML tags. First of all, the number of helper_class() 
>> methods proportionally increment with the number of attributes/class you 
>> use. Soon enough, you get very complicated helper method name due to very 
>> close but yet different methods. This is one of the reason why some people 
>> uses Presenters/Decorators in their project.
>>
>> On Monday, October 27, 2014 5:12:43 AM UTC-4, Abdelkader Boudih wrote:
>>>
>>> :-1:  You should be using helpers.
>>>
>>>
>>> <% for @posts.each do |post|%>
>>>  <%= content_tag :li, post.title, class: post_classes(post) %>
>>> <% end %>
>>>
>>> # in PostHelper
>>> def  post_classes(post)
>>>  # your code here
>>> end
>>>
>>> On 27 October 2014 09:02, Anuj Dutta <dutta...@googlemail.com> wrote:
>>>
>>>> Hello,
>>>>
>>>> How about moving the conditional to a helper in your first example? 
>>>> Just curious to know if you would prefer that approach.
>>>>
>>>> Thanks.
>>>>
>>>> Anuj
>>>>
>>>> On 26 Oct 2014 17:34, "Pier-Olivier Thibault" <pot...@gmail.com> wrote:
>>>> >
>>>> > Hello everyone,
>>>> >
>>>> > I have a feature request here that comes from an internal struggle 
>>>> here between view helpers, decorator patterns and ERB in general. A 
>>>> problem 
>>>> that occurs from time to time is how to build HTML tags with different 
>>>> settings depending on the some states. Here's an example of what I mean.
>>>> >
>>>> > <% for @posts.each do |post|%>
>>>> >  <%= content_tag :li, post.title, class: "post #{post.id == 3 ? 
>>>> 'selected' : ''}" %>
>>>> > <% end %>
>>>> >
>>>> > With builtin' methods, there's many way to build this kind of HTML 
>>>> tag. And I'm sure people here knows a few of them. However, none seem to 
>>>> really make it easy to build them. So I decided to take a stab at it this 
>>>> weekend and came up with this solution.
>>>> >
>>>> > <% for @posts.each do |post|%>
>>>> >  <%= content_tag :li, class: %w(post) do |li| %>
>>>> >    <% if post.id == 3 %>
>>>> >      <% li.css << 'selected' %>
>>>> >    <% end %>
>>>> >    post.title
>>>> >  <% end %>
>>>> > <% end %>
>>>> >
>>>> > All attributes can be either set inline (as previously possible) or 
>>>> through a tag object that is available inside the block. Now, since this 
>>>> might not be really easy to figure out how useful this could be, I created 
>>>> a helper that overrides content_tag() and saved it as a gist for you to 
>>>> test out locally. It's very possible that there's a few bugs as it's the 
>>>> very first version. 
>>>> >
>>>> > Gist: https://gist.github.com/pothibo/69d60505fa6e44863e52
>>>> >
>>>> > Would this be something RoR:Core would be interested in merging into 
>>>> Rails?
>>>> >
>>>> > -- 
>>>> > You received this message because you are subscribed to the Google 
>>>> Groups "Ruby on Rails: Core" group.
>>>> > To unsubscribe from this group and stop receiving emails from it, 
>>>> send an email to rubyonrails-co...@googlegroups.com.
>>>> > To post to this group, send email to rubyonra...@googlegroups.com.
>>>> > Visit this group at http://groups.google.com/group/rubyonrails-core.
>>>> > For more options, visit https://groups.google.com/d/optout.
>>>>  
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Ruby on Rails: Core" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to rubyonrails-co...@googlegroups.com.
>>>> To post to this group, send email to rubyonra...@googlegroups.com.
>>>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Ruby on Rails: Core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to rubyonrails-co...@googlegroups.com <javascript:>.
>> To post to this group, send email to rubyonra...@googlegroups.com 
>> <javascript:>.
>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-core+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-core@googlegroups.com.
Visit this group at http://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.

Reply via email to