Could you give an example how to test it before burying my argument.
Also helpers can be reused in other views/partials .

On 27 October 2014 15:19, Pier-Olivier Thibault <poth...@gmail.com> wrote:

> 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> 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.
>>> 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-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.
>

-- 
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