Initial commit
This commit is contained in:
commit
1af11cdea2
|
@ -0,0 +1,6 @@
|
||||||
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
|
gem 'tilt'
|
||||||
|
|
||||||
|
gem 'erubis'
|
||||||
|
gem 'haml'
|
|
@ -0,0 +1,15 @@
|
||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
erubis (2.7.0)
|
||||||
|
haml (4.0.4)
|
||||||
|
tilt
|
||||||
|
tilt (2.0.0)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
erubis
|
||||||
|
haml
|
||||||
|
tilt
|
|
@ -0,0 +1,70 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
require 'rubygems'
|
||||||
|
require 'bundler/setup'
|
||||||
|
require 'benchmark'
|
||||||
|
|
||||||
|
require 'erubis'
|
||||||
|
require 'haml'
|
||||||
|
require 'tilt/erb'
|
||||||
|
require 'tilt/erubis'
|
||||||
|
require 'tilt/haml'
|
||||||
|
|
||||||
|
# Terminal settings
|
||||||
|
TERMINAL_WIDTH = 60
|
||||||
|
BM_WIDTH = 46
|
||||||
|
|
||||||
|
# Benchmark settings
|
||||||
|
COMPILE_LOOPS = 1000
|
||||||
|
RENDER_LOOPS = 10000
|
||||||
|
|
||||||
|
$templates = {}
|
||||||
|
$template_params = {title: 'Greetings!', username: '%username%'}
|
||||||
|
|
||||||
|
def path_for template
|
||||||
|
File.expand_path('../templates/' + template, __FILE__)
|
||||||
|
end
|
||||||
|
|
||||||
|
def banner title
|
||||||
|
puts '#' * TERMINAL_WIDTH
|
||||||
|
puts '##' + title.center(TERMINAL_WIDTH - 4) + '##'
|
||||||
|
puts '#' * TERMINAL_WIDTH
|
||||||
|
end
|
||||||
|
|
||||||
|
ENGINES = {
|
||||||
|
erb: {
|
||||||
|
class: Tilt::ERBTemplate,
|
||||||
|
layout: path_for('erb/layout.erb')
|
||||||
|
},
|
||||||
|
erubis: {
|
||||||
|
class: Tilt::ErubisTemplate,
|
||||||
|
layout: path_for('erubis/layout.erubis')
|
||||||
|
},
|
||||||
|
haml: {
|
||||||
|
class: Tilt::HamlTemplate,
|
||||||
|
layout: path_for('haml/layout.haml')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
banner 'Compilation (%d runs)' % COMPILE_LOOPS
|
||||||
|
Benchmark.bm(TERMINAL_WIDTH - BM_WIDTH) do |x|
|
||||||
|
ENGINES.each do |name, attrs|
|
||||||
|
x.report(name) do
|
||||||
|
COMPILE_LOOPS.times do
|
||||||
|
$templates[name] = attrs[:class].new(attrs[:layout])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
puts
|
||||||
|
|
||||||
|
banner 'Render (%d runs)' % RENDER_LOOPS
|
||||||
|
Benchmark.bm(TERMINAL_WIDTH - BM_WIDTH) do |x|
|
||||||
|
ENGINES.each do |name, attrs|
|
||||||
|
x.report(name) do
|
||||||
|
RENDER_LOOPS.times do
|
||||||
|
$templates[name].render(Object, $template_params)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,18 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title><%= title %></title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Hello, <%= username %>!</h1>
|
||||||
|
<p>
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
||||||
|
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
|
||||||
|
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
|
||||||
|
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
|
||||||
|
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
|
||||||
|
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
|
||||||
|
est laborum.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title><%= title %></title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Hello, <%= username %>!</h1>
|
||||||
|
<p>
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
||||||
|
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
|
||||||
|
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
|
||||||
|
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
|
||||||
|
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
|
||||||
|
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
|
||||||
|
est laborum.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,17 @@
|
||||||
|
!!!
|
||||||
|
%html
|
||||||
|
%head
|
||||||
|
%title= title
|
||||||
|
%body
|
||||||
|
%h1
|
||||||
|
Hello,
|
||||||
|
= username
|
||||||
|
!
|
||||||
|
%p
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
||||||
|
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
|
||||||
|
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
|
||||||
|
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
|
||||||
|
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
|
||||||
|
occaecat cupidatat non proident, sunt in culpa qui officia deserunt
|
||||||
|
mollit anim id est laborum.
|
Loading…
Reference in New Issue