ruby-benchmarks/templating.rb

85 lines
1.7 KiB
Ruby
Raw Permalink Normal View History

2019-04-15 23:48:03 +00:00
# frozen_string_literal: true
require 'bundler/inline'
gemfile ENV.has_key?('INSTALL_GEMS') do
source 'https://rubygems.org'
gem 'benchmark-ips'
gem 'erubi'
gem 'fortitude'
gem 'haml'
gem 'markaby'
gem 'slim'
gem 'tilt'
gem 'arbre'
gem 'liquid'
gem 'tilt-handlebars'
end
require 'benchmark/ips'
Benchmark.ips do |x|
x.report('Slim:') do
Tilt.new('templates/slim.slim').render
end
# x.report('Fortitude:') do
# Tilt.new('templates/fortitude.rb').render
# end
# x.report('Arbre:') do
# view = Arbre::Context.new do
# html do
# head do
# title 'Hello from Arbre'
# meta charset: 'utf-8'
# meta name: 'viewport', content: 'width=device-width, initial-scale=1'
# link rel: 'stylesheet', href: '/test.css'
# meta name: 'current_time', content: Time.now.to_s
# end
# body do
# div(id: 'content') do
# div(class: 'container') do
# 100.times do |i|
# div("This is div ##{i}")
# end
# end
# end
# end
# end
# end
# view.to_s
# end
x.report('Markaby:') do
Tilt.new('templates/markaby.mab').render
end
x.report('Erubi:') do
Tilt.new('templates/erubi.erb').render
end
x.report('ERB:') do
Tilt::ERBTemplate.new('templates/erubi.erb').render
end
x.report('HAML:') do
Tilt.new('templates/haml.haml').render
end
x.report('Liquid:') do
Tilt.new('templates/liquid.liquid').render
end
x.report('Handlebars:') do
Tilt.new('templates/handlebars.hbs', {
time: Time.now.to_s,
numbers: (0..100).to_a
})
end
x.compare!
end