mercredi, novembre 23, 2005

[Rails] un (super) petit helper pour les stylesheets css

Bien que je trouve l'idée des css excellente, un jour où l'autre on se retrouve perdu entre tous les styles. Le mieux est de re-organiser les styles entre eux et dans des fichiers séparés...
C'est exactement à ça que sert ce petit script:
def stylesheet_auto_link_tags
  stylesheets_path = "#{RAILS_ROOT}/public/stylesheets/" 
  candidates = [ "#{controller.controller_name}",
                  "#{controller.controller_name}_#{controller.action_name}" ]

  candidates.inject("") do |buf, css| 
    buf << stylesheet_link_tag(css) if FileTest.exist?("#{stylesheets_path}/#{css}.css")
    buf
  end
end
à ajouter dans application_helper.rb. Après il suffit de rajouter dans la page:
<%= stylesheet_auto_link_tags %>
"Automagically" ça va chercher la css qui porte le nom du controller ou du controller_action. Exemple: admin.css
En combinant ça avec la fonction @import dans admin.css:
@import "scaffold.css";
on nage en plein: DRY (Don't Repeat Yourself) - génial :)

Aucun commentaire: