class Rcurse::Engine

Public Class Methods

render(content, context = Context.new) click to toggle source
# File lib/rcurse/engine.rb, line 3
def self.render content, context = Context.new
    content.gsub /{({|%=|%)(.+?)[}|%]}/ do |s|
        result = s

        case $1
        when "{"
            s = $2.chomp.split(" ")
            name = s[0]
            args = s[1..s.length]
            if Rcurse::helpers[name].is_a? Rcurse::Helper then
                result = Rcurse::helpers[name].callback.call(args, context)
            end
        when "%"
            context.eval($2)
            result = ""
        when "%="
            result = context.eval($2)
        end

        result
    end
end
render_file(filename, out_filename, context = Context.new) click to toggle source
# File lib/rcurse/engine.rb, line 26
def self.render_file filename, out_filename, context = Context.new
    content = File.read(filename)
    context.path = File.dirname(filename)
    rendered_content = self.render(content, context)
    File.open(out_filename, "w+") do |file|
        file.write(rendered_content)
    end
end