class Haml::Filters

Constants

CoffeeScript

Attributes

registered[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/haml/filters.rb, line 55
def initialize(options = {})
  @options = options
  @compilers = {}
end
remove_filter(name) click to toggle source
# File lib/haml/filters.rb, line 26
def remove_filter(name)
  registered.delete(name.to_s.downcase.to_sym)
  if constants.map(&:to_s).include?(name.to_s)
    remove_const name.to_sym
  end
end

Private Class Methods

register(name, compiler) click to toggle source
# File lib/haml/filters.rb, line 35
def register(name, compiler)
  registered[name] = compiler
end

Public Instance Methods

compile(node) click to toggle source
# File lib/haml/filters.rb, line 60
def compile(node)
  node.value[:text] ||= ''
  find_compiler(node).compile(node)
end

Private Instance Methods

find_compiler(node) click to toggle source
# File lib/haml/filters.rb, line 67
def find_compiler(node)
  name = node.value[:name].to_sym
  compiler = Filters.registered[name]
  raise FilterNotFound.new("FilterCompiler for '#{name}' was not found", node.line.to_i - 1) unless compiler

  @compilers[name] ||= compiler.new(@options)
end