Sha256: 2e710414d62aecddf40ec49cbb90cd6c28f58237f61345db6db024668912b613

Contents?: true

Size: 706 Bytes

Versions: 14

Compression:

Stored size: 706 Bytes

Contents

require 'temple'
require 'hamlit/compiler'
require 'hamlit/html'
require 'hamlit/parser'
require 'hamlit/temple'

module Hamlit
  class Engine < Temple::Engine
    define_options(
      generator:   Temple::Generators::ArrayBuffer,
      format:      :html,
      attr_quote:  "'",
      escape_html: true,
    )

    use Parser
    use Compiler
    use HTML
    filter :Escapable
    filter :ControlFlow
    filter :MultiFlattener
    filter :StaticMerger
    use :Generator, -> { create(options[:generator]) }

    private

    def create(klass)
      valid_options = options.to_hash.select do |key, value|
        klass.options.valid_key?(key)
      end
      klass.new(valid_options)
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
hamlit-1.5.4 lib/hamlit/engine.rb
hamlit-1.5.3 lib/hamlit/engine.rb
hamlit-1.5.2 lib/hamlit/engine.rb
hamlit-1.5.1 lib/hamlit/engine.rb
hamlit-1.5.0 lib/hamlit/engine.rb
hamlit-1.4.7 lib/hamlit/engine.rb
hamlit-1.4.6 lib/hamlit/engine.rb
hamlit-1.4.5 lib/hamlit/engine.rb
hamlit-1.4.3 lib/hamlit/engine.rb
hamlit-1.4.2 lib/hamlit/engine.rb
hamlit-1.4.1 lib/hamlit/engine.rb
hamlit-1.3.2 lib/hamlit/engine.rb
hamlit-1.3.1 lib/hamlit/engine.rb
hamlit-1.3.0 lib/hamlit/engine.rb