2009-12-17 15 views
6

Ho scritto un semplice custom filter in HAML ma non riesco a trovare la mia app per Rails.Come scrivere un filtro personalizzato HAML?

Il filtro si presenta così:

# lib/haml/filters/gfmarkdown.rb 
module Haml::Filters::Gfmarkdown 
    include Haml::Filters::Base 

    # copied from Haml::Filters::Markdown 
    lazy_require 'rdiscount', 'peg_markdown', 'maruku', 'bluecloth' 

    def render(text) 
    # copied from Haml::Filters::Markdown 
    engine = case @required 
      when 'rdiscount' 
       ::RDiscount 
      when 'peg_markdown' 
       ::PEGMarkdown 
      when 'maruku' 
       ::Maruku 
      when 'bluecloth' 
       ::BlueCloth 
      end 
    engine.new(gfm text).to_html # gfm method defined elsewhere 
    end 
end 

Nel mio punto di vista, cerco di utilizzare questo filtro in questo modo:

:gfmarkdown 
    #{comment.body} 

Ma ottengo questo messaggio di errore: Filter "gfmarkdown" is not defined.

Qualsiasi idee su come posso ottenere la mia app Rails per raccogliere il mio filtro?

Versioni: Rails 2.3.4, Haml 2.2.15.

risposta

3

Ho trovato la soluzione: aggiungere un inizializzatore che richiede il filtro.

# config/initializers/gfmarkdown.rb 
require 'haml/filters/gfmarkdown' 

avevo pensato che i moduli in lib/ sono stati auto-richiesti se la gerarchia del modulo abbinato il percorso del file. Vabbè;)

Problemi correlati