# 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