Sha256: 032519007eb8281f12f4d3e96d85e2a271dc04fd75c22454cd9d3f6b30e5dba3

Contents?: true

Size: 1.27 KB

Versions: 11

Compression:

Stored size: 1.27 KB

Contents

require '../test/helper.rb'
require 'benchmark'

str_template = <<-EOF
<%
i = 1
%>
<table>
    <tr><th>Name</th><th>Email</th></tr>
    <% for user in users %>
        <tr>
            <td><%=i%>: <%= user.name %></td><td><%= user.email %></td>
        </tr>
        <% i += 1 %>
        <% end %>
</table>
EOF


class User
  
  attr_accessor :name
  attr_accessor :email
  
  sandboxed_methods :name, :email
  
  def initialize()
    @name = 'xxxxx'
    @email = 'yyyyy'    
  end
  
  

end

users = []
for i in 0...100
  users << User.new
end





erb_compiled_template = SandboxedErb::Template.new.compile_erb_template(str_template)


sandbox_compiled_template = SandboxedErb::Template.new

#$DEBUG=true
if !sandbox_compiled_template.compile(str_template)
  puts sandbox_compiled_template.get_error
  exit
end

#$DEBUG=false


erb_result = eval(erb_compiled_template)

sb_result = sandbox_compiled_template.run(nil, {:users=>users})


if sb_result.nil?
  puts sandbox_compiled_template.get_error
  exit
end
      
if erb_result != sb_result
  puts erb_result
  puts sb_result
end

Benchmark.bmbm do |x|
  x.report("eval template") { 100.times do eval(erb_compiled_template); end }
  x.report("sandboxed template")  { 100.times do sandbox_compiled_template.run(nil, {:users=>users}); end }
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
sandboxed_erb-0.4.8 profile/vs_erb.rb
sandboxed_erb-0.4.7 profile/vs_erb.rb
sandboxed_erb-0.4.6 profile/vs_erb.rb
sandboxed_erb-0.4.5 profile/vs_erb.rb
sandboxed_erb-0.4.4 profile/vs_erb.rb
sandboxed_erb-0.4.3 profile/vs_erb.rb
sandboxed_erb-0.4.2 profile/vs_erb.rb
sandboxed_erb-0.4.1 profile/vs_erb.rb
sandboxed_erb-0.4.0 profile/vs_erb.rb
sandboxed_erb-0.3.0 profile/vs_erb.rb
sandboxed_erb-0.2.0 profile/vs_erb.rb