Create temple skelton

This commit is contained in:
Takashi Kokubun 2015-10-06 23:14:45 +09:00
parent cc6d6ca034
commit 227a81d5fb
5 changed files with 50 additions and 4 deletions

View File

@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
spec.require_paths = ['lib']
spec.add_dependency 'haml', '~> 4.0'
spec.add_dependency 'temple', '~> 0.7.6'
spec.add_development_dependency 'bundler', '~> 1.10'
spec.add_development_dependency 'rake', '~> 10.0'

View File

@ -1,5 +1,2 @@
require 'hamlit/engine'
require 'hamlit/version'
module Hamlit
# Your code goes here...
end

11
lib/hamlit/compiler.rb Normal file
View File

@ -0,0 +1,11 @@
module Hamlit
class Compiler
def initialize(options = {})
@options = options
end
def call(template)
[:multi, [:static, 'Hamlit']]
end
end
end

24
lib/hamlit/engine.rb Normal file
View File

@ -0,0 +1,24 @@
require 'temple'
require 'hamlit/compiler'
require 'hamlit/parser'
module Hamlit
class Engine < Temple::Engine
define_options(
generator: Temple::Generators::ArrayBuffer,
format: :html,
attr_quote: "'",
escape_html: true,
pretty: false,
)
use Parser
use Compiler
html :Pretty
filter :Escapable
filter :ControlFlow
filter :MultiFlattener
filter :StaticMerger
use :Generator, -> { options[:generator] }
end
end

13
lib/hamlit/parser.rb Normal file
View File

@ -0,0 +1,13 @@
require 'haml'
module Hamlit
class Parser
def initialize(options = {})
@options = options
end
def call(template)
Haml::Parser.new(template, {}).parse
end
end
end