lib/express_templates/template/handler.rb in express_templates-0.9.3 vs lib/express_templates/template/handler.rb in express_templates-0.9.4

- old
+ new

@@ -1,15 +1,31 @@ +require 'ripper' + module ExpressTemplates module Template class Handler def self.call(template) new.call(template) end def call(template) + # call ripper stuff method + + warn_contains_logic("(#{ExpressTemplates.compile(template)}).html_safe") # pass the source code # returns a string to be eval'd "(#{ExpressTemplates.compile(template)}).html_safe" end + def warn_contains_logic(compiled_template) + keywords = %w(if until unless case for do loop while) # array of conditional keywords + tokens = [] + if Ripper.lex(compiled_template).select do |element| # since it outputs an array [[line, col], type, token] + element[1]==:on_kw # type must match ':on_kw' type (type is keyword) + end.each { |match| tokens.push(match) if keywords.include? match[2] } # check if token is in given /keyword/ array, then push to new array match + tokens.each do |first| + warn "PAGE TEMPLATE INCLUDES #{first[2]} STATEMENT AT LINE #{first[0][0]}: #{first}\n#{compiled_template}" # warn on first occurence of conditional logic + end + end + end end end -end \ No newline at end of file +end