diff --git a/lib/hamlit/compiler.rb b/lib/hamlit/compiler.rb index e9e760b3..843e0729 100644 --- a/lib/hamlit/compiler.rb +++ b/lib/hamlit/compiler.rb @@ -4,12 +4,7 @@ require 'hamlit/compilers/filter' require 'hamlit/compilers/preserve' require 'hamlit/compilers/script' require 'hamlit/compilers/text' -require 'hamlit/concerns/escapable' -require 'hamlit/concerns/registerable' require 'hamlit/filter' -require 'hamlit/filters/css' -require 'hamlit/filters/javascript' -require 'hamlit/filters/ruby' module Hamlit class Compiler < Hamlit::Filter @@ -19,11 +14,5 @@ module Hamlit include Compilers::Preserve include Compilers::Script include Compilers::Text - include Concerns::Escapable - extend Concerns::Registerable - - register :javascript, Filters::Javascript - register :css, Filters::Css - register :ruby, Filters::Ruby end end diff --git a/lib/hamlit/compilers/filter.rb b/lib/hamlit/compilers/filter.rb index eb1b31bb..7c932288 100644 --- a/lib/hamlit/compilers/filter.rb +++ b/lib/hamlit/compilers/filter.rb @@ -9,6 +9,16 @@ module Hamlit BASE_DEPTH = 2 IGNORED_FILTERS = %w[ruby].freeze + def self.included(base) + base.class_eval do + extend Concerns::Registerable + + register :javascript, Filters::Javascript + register :css, Filters::Css + register :ruby, Filters::Ruby + end + end + def on_haml_filter(name, exp) exp = format_expressions(name, exp) diff --git a/lib/hamlit/compilers/script.rb b/lib/hamlit/compilers/script.rb index 289328ea..55760275 100644 --- a/lib/hamlit/compilers/script.rb +++ b/lib/hamlit/compilers/script.rb @@ -3,6 +3,10 @@ require 'hamlit/concerns/escapable' module Hamlit module Compilers module Script + def self.included(base) + base.send(:include, Concerns::Escapable) + end + def on_haml_script(*exps) exps = exps.dup variable = result_identifier