2010-01-12 2 views
0

Je souhaite utiliser le hachage git de fichiers en tant qu'identique. Pour cela j'ai créé un initialiseur comme ci-dessous.Le hachage Git comme RAILS_ASSET_ID. Où mettre en cache?

require 'grit' 
module ActionView 
    module Helpers 
    module AssetTagHelper 
     def rewrite_asset_path(source) 
     asset_id = rails_asset_id(source) 
     if asset_id.blank? 
      source 
     else 
      "/s/#{asset_id}" + source 
     end 
     end 

     def rails_asset_id(source) 
      repo = Grit::Repo.new('.') 
      ENV["RAILS_ASSET_ID"] || 
      repo.log('master', "#{RAILS_ROOT}/public/#{source}", :max_count => 1).first.id_abbrev rescue "" 
     end 
    end 
    end 
end 

Cela fonctionne très bien, mais je veux mettre en cache le hachage des fichiers quelque part. Je pourrais utiliser une variable d'instance mais je ne suis pas sûr si ceux-ci sont nettoyés par requête. Où puis-je mettre cela afin qu'il persiste après la demande?

Répondre

1

Une variable de classe semble être le meilleur moyen de le faire.