Skip to content

Instantly share code, notes, and snippets.

@nex3
Forked from wycats/builder.builder
Created December 29, 2008 05:26
Show Gist options
  • Save nex3/41187 to your computer and use it in GitHub Desktop.
Save nex3/41187 to your computer and use it in GitHub Desktop.
[submodule "haml"]
path = haml
url = git://github.com/nex3/haml.git
require 'rubygems'
require 'builder'
require 'rbench'
require File.dirname(__FILE__) + '/haml/lib/haml'
def read(filename)
File.read(File.join(File.dirname(__FILE__), filename))
end
RBench.run((ARGV[0] || '10000').to_i) do
column :builder, :title => 'Builder'
column :haml, :title => 'Haml'
column :haml_ugly, :title => 'Haml :ugly'
report "Report" do
context = Object.new
context.instance_variable_set('@content', read('lipsum.txt').gsub(/^(.+)$/, '<p>\1</p>'))
context.instance_eval(<<RUBY)
def builder
xml = Builder::XmlMarkup.new(:indent => 2)
#{read('builder.builder')}
xml.target!
end
RUBY
haml = read('haml.haml')
Haml::Engine.new(haml).def_method(context, :haml)
Haml::Engine.new(haml, :ugly => true).def_method(context, :haml_ugly)
builder {context.builder}
haml {context.haml}
haml_ugly {context.haml_ugly}
end
end
xml.instruct!
xml.text! '<?xml-stylesheet href="http://nex-3.com/stylesheets/main.css?1209861737" type="text/css" ?>'.to_s
xml.text! '<?xml-stylesheet href="http://nex-3.com/stylesheets/coderay.css?1209861737" type="text/css" ?>'.to_s
xml.feed(:xmlns => "http://www.w3.org/2005/Atom", 'xml:base' => 'http://nex-3.com/'.to_s) do
unless nil
xml.title "Blog Posts : #{"Nex3".to_s}"
else
xml.title "Blog Posts About #{"Ruby and Emacs".to_s} : #{"Nex3".to_s}"
end
xml.id "http://nex-3.com/".to_s
xml.updated Time.now.strftime("%Y-%m-%dT%H:%M:%S%Z")
xml.icon "/images/favicon.png?1209861727".to_s
xml.author do
xml.name "Nathan Weizenbaum".to_s
xml.email "nex342@gmail.com".to_s
xml.uri "http://nex-3.com/".to_s
end
xml.link(:rel => 'self', :href => '/posts' + '.atom')
xml.link(:rel => 'alternate', :type => 'text/html', :href => 'posts')
for i in 0...10
xml.entry do
xml.id i
xml.title 'Post' + i.to_s
xml.updated Time.now.strftime("%Y-%m-%dT%H:%M:%S%Z")
xml.published Time.now.strftime("%Y-%m-%dT%H:%M:%S%Z")
xml.author do
xml.name "Nathan Weizenbaum".to_s
xml.email "nex342@gmail.com".to_s
xml.uri "http://nex-3.com/".to_s
end
for tag in %w[foo bar baz bang bop]
xml.category(:term => tag, :label => tag.capitalize)
end
xml.content(:type => 'xhtml') do
xml.div(:id => "content", :xmlns => "http://www.w3.org/1999/xhtml") do
xml.text! '<link href="/stylesheets/main.css?1209861737" media="screen" rel="stylesheet" type="text/css" />'.to_s
xml.text! '<link href="/stylesheets/coderay.css?1209861737" media="screen" rel="stylesheet" type="text/css" />'.to_s
xml.text! @content
end
end
xml.link(:rel => 'alternate', :href => '/posts/' + i.to_s)
end
end
end
!!! XML
= '<?xml-stylesheet href="http://nex-3.com/stylesheets/main.css?1209861737" type="text/css" ?>'.to_s
= '<?xml-stylesheet href="http://nex-3.com/stylesheets/coderay.css?1209861737" type="text/css" ?>'.to_s
%feed{:xmlns => "http://www.w3.org/2005/Atom", 'xml:base' => 'http://nex-3.com/'.to_s}
- unless nil
%title== Blog Posts : #{"Nex3".to_s}
- else
%title== Blog Posts About #{"Ruby and Emacs".to_s} : #{"Nex3".to_s}
%id= "http://nex-3.com/".to_s
%updated= Time.now.strftime("%Y-%m-%dT%H:%M:%S%Z")
%icon= "/images/favicon.png?1209861727".to_s
%author
%name= "Nathan Weizenbaum".to_s
%email= "nex342@gmail.com".to_s
%uri= "http://nex-3.com/".to_s
%link{:rel => 'self', :href => '/posts/' + '.atom'}/
%link{:rel => 'alternate', :type => 'text/html', :href => 'posts'}/
- for i in 0...10
%entry
%id= i
%title= 'Post' + i.to_s
%updated= Time.now.strftime("%Y-%m-%dT%H:%M:%S%Z")
%published= Time.now.strftime("%Y-%m-%dT%H:%M:%S%Z")
%author
%name= "Nathan Weizenbaum".to_s
%email= "nex342@gmail.com".to_s
%uri= "http://nex-3.com/".to_s
- for tag in %w[foo bar baz bang bop]
%category{:term => tag, :label => tag.capitalize}/
%content{:type => 'xhtml'}
#content{:xmlns => "http://www.w3.org/1999/xhtml"}
= '<link href="/stylesheets/main.css?1209861737" media="screen" rel="stylesheet" type="text/css" />'.to_s
= '<link href="/stylesheets/coderay.css?1209861737" media="screen" rel="stylesheet" type="text/css" />'.to_s
= @content
%link{:rel => 'alternate', :href => '/posts/' + i.to_s}/
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed id nunc nec augue congue condimentum. Etiam turpis risus, facilisis sed, mollis eu, bibendum ac, quam. Ut lectus. Donec a ante quis leo vulputate porttitor. Ut metus. Nulla facilisi. Curabitur iaculis consequat ligula. Phasellus quis lacus non diam tristique congue. Maecenas ut orci. Sed dui. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vivamus iaculis magna in dolor. Aenean tincidunt, quam ac pulvinar tristique, erat tortor consequat nisl, non commodo sapien nunc sit amet diam. Vestibulum adipiscing metus a tellus. Pellentesque magna.
Nunc tincidunt imperdiet est. Donec metus. Proin eget enim in ligula pulvinar pulvinar. Sed libero erat, facilisis a, dapibus ac, consequat ac, velit. Proin felis. Proin elementum dui non urna. Nulla posuere molestie sapien. Quisque luctus. Donec congue, est eget bibendum malesuada, sem lectus aliquam dolor, a fermentum libero tortor non erat. Fusce et libero. Nulla ipsum tortor, ornare non, dictum tincidunt, scelerisque eu, enim.
Fusce feugiat pulvinar sem. Donec pharetra viverra neque. Quisque tellus lacus, luctus vitae, egestas quis, posuere in, ante. Mauris ultricies elementum erat. In sagittis semper risus. Donec consequat placerat est. Morbi vitae tortor. Vivamus turpis. Proin pede urna, suscipit at, pellentesque eu, scelerisque non, massa. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin tristique massa at neque. Quisque ut lectus. Suspendisse volutpat, nunc id malesuada sagittis, orci orci dapibus sem, nec cursus sem leo vestibulum enim. Aliquam sed eros ut lacus porta consequat. Aliquam sit amet lacus. Phasellus porttitor. Aliquam erat volutpat. Sed et tortor sed lacus pharetra pellentesque. Suspendisse a arcu vel turpis auctor posuere.
Nam imperdiet adipiscing est. Maecenas odio ante, cursus vel, ultrices et, mollis eu, enim. Aenean ac arcu. Curabitur id mi. Cras auctor scelerisque orci. Vestibulum eleifend enim at mi. Nam tempus lacus eget urna. Proin interdum dolor in neque. Cras iaculis libero eu mi. Maecenas eget velit accumsan ante bibendum fringilla.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent auctor. Curabitur adipiscing pulvinar nisl. Donec tempus enim at nibh. In hac habitasse platea dictumst. Nunc dapibus ullamcorper odio. Morbi tincidunt nibh ut ipsum. Fusce tincidunt auctor dui. Phasellus imperdiet ornare est. Phasellus neque.
Maecenas eleifend sapien. Sed nulla lacus, faucibus vitae, vulputate at, tristique sit amet, turpis. Maecenas laoreet, leo eu congue fringilla, sapien pede tempus nulla, at ornare arcu massa ac est. Nam elementum, massa sed congue malesuada, erat tellus sodales nulla, ut vehicula urna dolor at sem. Nulla quam. Nam vitae libero. Morbi elementum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer semper sapien id lectus. Sed est.
Ut pulvinar. Vivamus nec dolor vel est euismod placerat. Aliquam eu lorem. Cras nibh neque, congue id, convallis in, consectetur at, sem. Aliquam diam ipsum, scelerisque et, feugiat quis, accumsan dictum, dui. Cras leo enim, sodales sed, tincidunt in, viverra et, neque. Praesent et sem venenatis nisi ultrices vulputate. Ut ut dolor. Morbi fringilla, enim eget vulputate egestas, justo nibh dictum tortor, a imperdiet felis nulla eu massa. Morbi eleifend varius justo. Curabitur urna arcu, egestas at, aliquam ac, auctor a, nisi. Vestibulum a nisi nec augue molestie aliquam. Donec ut arcu et dui condimentum tempus. Aliquam id nibh. Aliquam erat volutpat. Fusce egestas ornare nisi. Vestibulum ut massa sit amet enim pulvinar bibendum. Proin lorem libero, tristique a, porta id, hendrerit a, risus.
Etiam sit amet diam nec dui lacinia iaculis. Aliquam erat volutpat. Pellentesque ac risus non nisi congue feugiat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus dolor. Vivamus suscipit elit in velit. Maecenas cursus. Curabitur auctor. Sed risus lorem, aliquet vitae, aliquam id, pulvinar ac, pede. Vivamus blandit est nec mi. Morbi bibendum, sem ut lobortis eleifend, turpis lacus porta mi, viverra auctor turpis dui sed leo.
Morbi malesuada. Vivamus malesuada. Maecenas suscipit ullamcorper felis. Maecenas metus justo, eleifend sit amet, sagittis in, mattis ac, lorem. Mauris pede. Vestibulum ut mi. Proin vulputate sollicitudin orci. Etiam volutpat, elit id euismod congue, eros sem luctus arcu, in tempus lorem tortor ac dui. Phasellus odio elit, pretium id, gravida sagittis, pharetra non, tortor. Nulla facilisi. Vestibulum ipsum. Duis placerat diam nec tortor porttitor consequat. Suspendisse condimentum consequat mauris.
Quisque est libero, pharetra auctor, lacinia in, tristique a, erat. Morbi cursus mi eget dui. Pellentesque in lectus in nibh pharetra pharetra. Praesent eget diam nec lectus ornare imperdiet. Integer varius. Sed tortor. Nullam tempor malesuada sapien. Ut augue. Etiam commodo, odio id volutpat blandit, nibh augue imperdiet lacus, sed pulvinar pede leo eget eros. Sed aliquam lacus vitae ipsum. Aliquam erat volutpat. Vivamus eget diam. Morbi molestie purus lobortis massa dapibus ultrices. Praesent mi risus, mollis vitae, blandit sit amet, vulputate ut, massa. Aenean facilisis tincidunt felis. Pellentesque mauris diam, tincidunt id, auctor at, laoreet aliquam, arcu. Cras sagittis. Maecenas euismod aliquet massa. Fusce adipiscing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment