2009-12-17 1 views
6

Tôi đã viết đơn giản custom filter in HAML nhưng tôi không thể tải ứng dụng Rails của mình để tìm nó.Làm cách nào để viết bộ lọc tùy chỉnh HAML?

Bộ lọc trông như thế này:

# 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 

Trong quan điểm của tôi, tôi cố gắng sử dụng bộ lọc này như sau:

:gfmarkdown 
    #{comment.body} 

Nhưng tôi nhận được thông báo lỗi này: Filter "gfmarkdown" is not defined.

Bất kỳ ý tưởng làm thế nào tôi có thể nhận được ứng dụng Rails của tôi để nhận bộ lọc của tôi?

Phiên bản: Đường ray 2.3.4, Haml 2.2.15.

Trả lời

3

Tôi đã tìm thấy giải pháp: thêm bộ khởi tạo yêu cầu bộ lọc.

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

Tôi đã nghĩ rằng các mô-đun trong lib/ được tự động yêu cầu nếu phân cấp mô-đun khớp với đường dẫn tệp. Oh well;)