Sha256: eb42258ce0e04aa9d88fae1a63a376c0553e621982b989589dd75440ca4c07da

Contents?: true

Size: 796 Bytes

Versions: 4

Compression:

Stored size: 796 Bytes

Contents

Treetop.load File.dirname(__FILE__) + '/slippers'

module Slippers
  class Engine
    DEFAULT_STRING = ''
    MISSING_HANDLER = lambda { return "" }
    def initialize(template, params={})
      @main_template = Slippers::Template.new(template)
      @template_group = params[:template_group]
    end
    attr_reader :main_template, :template_group
    
    def render(object_to_render=nil)
      parser = SlippersParser.new
      parse_tree = parser.parse(@main_template.template)
      return '' unless parse_tree
      parse_tree.eval(object_to_render, @template_group) 
    end
    
    def eql?(other)
      @main_template.eql?(other.main_template) && @template_group.eql?(other.template_group)
    end
    
    def hash
      @main_template.hash + @template_group.hash*23
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
slippers-0.0.14 lib/engine/engine.rb
slippers-0.0.13 lib/engine/engine.rb
slippers-0.0.12 lib/engine/engine.rb
slippers-0.0.11 lib/engine/engine.rb