Haml: Append class if condition is true in Haml

haml, ruby

Solution

.post{:class => ("gray" unless post.published?)}

Problem

If `post.published?` ``` .post / Post stuff ``` Otherwise ``` .post.gray / Post stuff ``` I've implemented this with rails helper and it seems ugly. ``` = content_tag :div, :class => "post" + (" gray" unless post.published?).to_s do / Post stuff ``` Second variant: ``` = content_tag :div, :class => "post" + (post.published? ? "" : " gray") do / Post stuff ``` Is there a more simple and haml-specific way? UPD. Haml-specific, but still not simple: ``` %div{:class => "post" + (" gray" unless post.published?).to_s} / Post stuff ```

Original source