Class: Matte::IncludeMixins
- Inherits:
-
Object
- Object
- Matte::IncludeMixins
- Defined in:
- lib/matte.rb,
lib/matte.rb
Overview
statically includes mixins in HTML.
Instance Method Summary collapse
- #call(document) ⇒ Object
-
#initialize(options = {}) ⇒ IncludeMixins
constructor
A new instance of IncludeMixins.
Constructor Details
#initialize(options = {}) ⇒ IncludeMixins
Returns a new instance of IncludeMixins.
46 47 48 |
# File 'lib/matte.rb', line 46 def initialize = {} @conf = end |
Instance Method Details
#call(document) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/matte.rb', line 50 def call document Matte.find_all_sexps(document, [:matte, :placeholder]).each do |placeholder| placeholder_name = placeholder[2] body = [:multi] # include all mixins with same name Matte.find_all_sexps(document, [:matte, :mixin, placeholder_name]).each do |mixin| body << mixin[3] mixin.clear mixin << :multi end placeholder.clear placeholder.push :multi, body end # if there are any remaining mixins without corresponding placeholder, error raise Temple::InvalidExpression.new "found mixin without corresponding placeholder" unless Matte.find_all_sexps(document, [:matte, :mixin]).empty? document end |