>> require 'rubygems' >> require 'active_support' >> require 'action_view' >> require 'action_controller' >> $:.unshift File.join(File.expand_path(File.dirname(__FILE__)), '../../hobo_support/lib') >> $:.unshift File.join(File.expand_path(File.dirname(__FILE__)), '../../dryml/lib') >> require 'hobo_support' >> require 'dryml' >> require 'dryml/template_handler' {.hidden} >> Dryml.render("hi") => "hi" >> Dryml.render("<%= this %>", {:this => "hello"}) => "hello" >> Dryml.render(%q{<if test="&true">Hi</if><else>Bye</else>}) => "Hi" >> Dryml.render(%q{<repeat with="&[1,2,3]"><%= this %> </repeat>}) => "1 2 3 " >> Dryml.render(%q{<def tag="myp"><p param="default"/></def><myp>Hi</myp>}) => "<p>Hi</p>" >> Dryml.render(%q{<def tag="myp"><p param="default"/></def><call-tag tag="myp">Hi</call-tag>}).strip => "<p>Hi</p>" >> Dryml.render(%q{<def tag="myp"><p param="default"/></def><wrap tag="myp" when="&true">img</wrap>}).strip => "<p>img</p>" This triggers bug #452, so disabled. FIXME. #>> Dryml.render(%q{<def tag="myp"> <p param="default"/> </def> <extend tag="myp"> <old-myp merge> <default: replace>Hello <default: restore/></default:> </old-myp> </extend> <myp>World</myp>}).strip #=> "<p>Hello World</p>" Test caching >> template = %q{<if test="&x">Hi</if><else>Bye</else>} >> t1 = Time.now >> Dryml.render(template, {:x => true}) => "Hi" >> t2 = Time.now >> Dryml.render(template, {:x => false}) => "Bye" >> t3 = Time.now >> (t3-t2)*1.5 < (t2-t1) => true Test descendent searching >> doc = REXML::Document.new '<a><b><c><d a="b">sean</d></c></b></a>' >> Dryml::Template.descendent_select(doc.root) { |el| el.attribute 'a' }.size => 1