Sha256: a86d00d43ac6f905d6683619d7fcfdade85dd018e2bf25926dfde723facb3746
Contents?: true
Size: 581 Bytes
Versions: 3
Compression:
Stored size: 581 Bytes
Contents
require 'mustache' module HSQL class Template < Struct.new(:input) def variable_names extract_variable_names(ast).uniq end def render(hash) Mustache.render(input, hash) end private # See Mustache::Generator#compile! for reference code def extract_variable_names(tree) return unless tree.is_a?(Array) if tree[1] == :fetch tree.last.first else tree.map { |token| extract_variable_names(token) }.compact.flatten end end def ast ::Mustache::Parser.new.compile(input) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
hsql-0.2.1 | lib/hsql/template.rb |
hsql-0.2.0 | lib/hsql/template.rb |
hsql-0.1.0 | lib/hsql/template.rb |