ramaze 2009.04 → 2009.05

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. data/CHANGELOG +168 -0
  2. data/MANIFEST +16 -6
  3. data/{README.markdown → README.md} +0 -14
  4. data/Rakefile +20 -20
  5. data/benchmark/bench_templates/bench.rb +67 -0
  6. data/benchmark/bench_templates/view/large.erb +79 -0
  7. data/benchmark/bench_templates/view/large.haml +41 -0
  8. data/benchmark/bench_templates/view/large.xhtml +79 -0
  9. data/benchmark/bench_templates/view/small.erb +21 -0
  10. data/benchmark/bench_templates/view/small.haml +12 -0
  11. data/benchmark/bench_templates/view/small.xhtml +21 -0
  12. data/benchmark/run.rb +14 -21
  13. data/benchmark/suite/minimal.rb +3 -5
  14. data/benchmark/suite/no_informer.rb +0 -2
  15. data/benchmark/suite/no_sessions.rb +3 -4
  16. data/benchmark/suite/no_template.rb +1 -3
  17. data/benchmark/suite/simple.rb +1 -3
  18. data/benchmark/suite/template_erubis.rb +0 -2
  19. data/benchmark/suite/template_etanni.rb +8 -0
  20. data/benchmark/suite/template_ezamar.rb +1 -3
  21. data/benchmark/suite/template_haml.rb +0 -2
  22. data/benchmark/suite/template_liquid.rb +0 -2
  23. data/benchmark/suite/template_markaby.rb +0 -2
  24. data/benchmark/suite/template_nagoro.rb +1 -3
  25. data/benchmark/suite/template_redcloth.rb +0 -2
  26. data/benchmark/suite/template_tenjin.rb +0 -2
  27. data/bin/ramaze +7 -300
  28. data/doc/AUTHORS +11 -7
  29. data/examples/app/chat/layout/{default.nag → default.xhtml} +0 -0
  30. data/examples/app/chat/view/{chat.nag → chat.xhtml} +0 -0
  31. data/examples/app/chat/view/{index.nag → index.xhtml} +0 -0
  32. data/examples/helpers/cache.rb +6 -4
  33. data/lib/ramaze.rb +2 -3
  34. data/lib/ramaze/cache/sequel.rb +17 -5
  35. data/lib/ramaze/gestalt.rb +3 -0
  36. data/lib/ramaze/helper/gestalt.rb +32 -0
  37. data/lib/ramaze/helper/paginate.rb +1 -0
  38. data/lib/ramaze/helper/ultraviolet.rb +2 -0
  39. data/lib/ramaze/log/rotatinginformer.rb +10 -10
  40. data/lib/ramaze/request.rb +1 -4
  41. data/lib/ramaze/tool/bin.rb +330 -0
  42. data/lib/ramaze/version.rb +1 -1
  43. data/lib/ramaze/view.rb +3 -13
  44. data/lib/ramaze/view/erubis.rb +2 -2
  45. data/lib/ramaze/view/ezamar.rb +2 -2
  46. data/lib/ramaze/view/gestalt.rb +14 -0
  47. data/lib/ramaze/view/haml.rb +1 -1
  48. data/lib/ramaze/view/liquid.rb +2 -2
  49. data/lib/ramaze/view/maruku.rb +2 -1
  50. data/lib/ramaze/view/sass.rb +1 -1
  51. data/lib/ramaze/view/tenjin.rb +7 -4
  52. data/lib/vendor/route_exceptions.rb +8 -9
  53. data/ramaze.gemspec +6 -9
  54. data/spec/examples/caching.rb +2 -4
  55. data/spec/examples/element.rb +1 -0
  56. data/spec/examples/templates/template_ezamar.rb +1 -0
  57. data/spec/examples/templates/template_nagoro.rb +1 -0
  58. data/spec/ramaze/error.rb +1 -1
  59. data/spec/ramaze/gestalt.rb +22 -16
  60. data/spec/ramaze/helper/localize.rb +10 -8
  61. data/spec/ramaze/helper/sequel_form.rb +2 -0
  62. data/spec/ramaze/helper/user.rb +2 -2
  63. data/spec/ramaze/view/gestalt.rb +94 -0
  64. data/spec/ramaze/view/gestalt/external.ges +8 -0
  65. data/tasks/install_dependencies.rake +1 -1
  66. data/tasks/release.rake +5 -4
  67. metadata +20 -20
  68. data/benchmark/suite/template_builder.rb +0 -12
  69. data/lib/ramaze/snippets/kernel/constant.rb +0 -41
data/CHANGELOG CHANGED
@@ -1,3 +1,171 @@
1
+ [1719994 | Wed May 06 15:39:28 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
2
+
3
+ * Version 2009.05
4
+
5
+ [6025293 | Wed May 06 15:36:58 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
6
+
7
+ * VERSION=xxx rake release:xxx
8
+
9
+ [025d2f0 | Wed May 06 15:33:00 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
10
+
11
+ * bring rakefile up to date
12
+
13
+ [645a7e9 | Wed May 06 15:31:47 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
14
+
15
+ * Finally move readme to README.md
16
+
17
+ [fe285e1 | Wed May 06 15:31:26 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
18
+
19
+ * Remove some useless stuff from the readme
20
+
21
+ [9622f31 | Wed May 06 15:21:25 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
22
+
23
+ * Last minute changes to tasks
24
+
25
+ [966fce3 | Wed May 06 12:38:55 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
26
+
27
+ * Remove Object#constant since it collides with facets
28
+
29
+ [1d9215a | Sun May 03 18:10:44 UTC 2009] Andreas Karlsson <andreas@proxel.se>
30
+
31
+ * Clean up benchmarking.
32
+
33
+ Clean up benchmarking a bit adding support for a mode switch,
34
+ which defaults to "live". Move "require 'ramaze'" to support
35
+ custom environments and killing the logging correctly.
36
+
37
+ Also fix bug where Ramaze.start was run in one of the files
38
+ in the suite, and finally remove the unused --no-sessions.
39
+
40
+ Signed-off-by: Michael Fellinger <m.fellinger@gmail.com>
41
+
42
+ [b8337e9 | Tue May 05 15:29:15 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
43
+
44
+ * Add some more non-serious fail
45
+
46
+ [be9d471 | Tue May 05 14:23:58 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
47
+
48
+ * Don't use Binding#eval
49
+
50
+ [b79699a | Tue May 05 06:13:37 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
51
+
52
+ * Add comment about the state of serialization in Sequel
53
+
54
+ [38a1f25 | Tue May 05 05:13:25 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
55
+
56
+ * Make the sequel cache and the spec of sequel_form compatible with sequel 3.0.0
57
+
58
+ [0a0553a | Mon May 04 16:39:29 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
59
+
60
+ * Chat examples uses Etanni, not Nagoro
61
+
62
+ [5778a31 | Sat May 02 21:04:38 UTC 2009] TJ Vanderpoel <bougy.man@gmail.com>
63
+
64
+ * refactored bin code to lib/ramaze/tool/bin
65
+
66
+ [b84b566 | Sun May 03 14:53:26 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
67
+
68
+ * Request::current is in Innate
69
+
70
+ [53108b8 | Sat May 02 13:29:18 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
71
+
72
+ * We don't rely on STATE anymore
73
+
74
+ [8d2e57b | Sat May 02 14:09:37 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
75
+
76
+ * Fix the benchmarks
77
+
78
+ [2d5dda3 | Fri May 01 10:22:13 UTC 2009] Andreas Karlsson <andreas@proxel.se>
79
+
80
+ * Use faster method for erubis templates.
81
+
82
+ The evaluate method uses instance_eval on a cached proc instead of using
83
+ eval like the erb compatible result method does.
84
+
85
+ Signed-off-by: Michael Fellinger <m.fellinger@gmail.com>
86
+
87
+ [cfd250c | Fri May 01 07:02:03 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
88
+
89
+ * Skip :install_dependencies until we figure out something better
90
+
91
+ [1829f38 | Fri May 01 07:00:39 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
92
+
93
+ * Seems like a regression in rack-test...
94
+
95
+ [09d6fa1 | Fri May 01 07:00:07 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
96
+
97
+ * Fix the errors spec, it should run in :dev mode since :live has no ShowExceptions anymore
98
+
99
+ [499c4ed | Fri May 01 06:55:57 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
100
+
101
+ * Make RouteExceptions a little bit less verbose
102
+
103
+ [a8c6383 | Fri May 01 06:55:35 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
104
+
105
+ * Give the other engines compile caching as well (where it makes sense)
106
+
107
+ [81380cf | Fri May 01 05:49:55 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
108
+
109
+ * Adapt gestalt spec to latest rack-test
110
+
111
+ [e784317 | Fri May 01 05:43:50 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
112
+
113
+ * Fix the helper/caching example
114
+
115
+ [93a741b | Thu Apr 30 09:06:35 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
116
+
117
+ * Use caching for Haml
118
+
119
+ [47a6dec | Thu Apr 30 09:06:17 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
120
+
121
+ * Integrate View better with Innate
122
+
123
+ [e86a143 | Thu Apr 30 07:57:51 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
124
+
125
+ * Split up Haml engine, prepare for caching
126
+
127
+ [b2747cc | Wed Apr 29 09:33:40 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
128
+
129
+ * Don't use ShowExceptinos in live mode
130
+
131
+ [552a4c3 | Tue Apr 28 17:52:34 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
132
+
133
+ * Fix RotatingInformer
134
+
135
+ [2e53d6e | Tue Apr 28 04:50:27 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
136
+
137
+ * Fix the release tasks
138
+
139
+ [e3c1418 | Tue Apr 28 04:49:49 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
140
+
141
+ * Give the paginator a count
142
+
143
+ [a395c1c | Mon Apr 27 03:33:16 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
144
+
145
+ * Ultraviolet needs traited
146
+
147
+ [a65aaad | Mon Apr 27 01:47:48 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
148
+
149
+ * Forward logging to Ramaze::Log by default
150
+
151
+ [d0536fa | Sun Apr 26 12:21:41 UTC 2009] Tadahiko Uehara <kikofx@gmail.com>
152
+
153
+ * Add support Gestalt as another template engine.
154
+
155
+
156
+ Signed-off-by: Michael Fellinger <m.fellinger@gmail.com>
157
+
158
+ [37b2928 | Sun Apr 26 11:51:52 UTC 2009] Tadahiko Uehara <kikofx@gmail.com>
159
+
160
+ * Add gestalt to take text and attributes as arguments.
161
+
162
+
163
+ Signed-off-by: Michael Fellinger <m.fellinger@gmail.com>
164
+
165
+ [42e96b1 | Sat Apr 25 15:19:31 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
166
+
167
+ * Version 2009.04
168
+
1
169
  [8a0c6ac | Sat Apr 25 14:31:04 UTC 2009] Michael Fellinger <m.fellinger@gmail.com>
2
170
 
3
171
  * Update dependencies
data/MANIFEST CHANGED
@@ -1,8 +1,15 @@
1
1
  .mailmap
2
2
  CHANGELOG
3
3
  MANIFEST
4
- README.markdown
4
+ README.md
5
5
  Rakefile
6
+ benchmark/bench_templates/bench.rb
7
+ benchmark/bench_templates/view/large.erb
8
+ benchmark/bench_templates/view/large.haml
9
+ benchmark/bench_templates/view/large.xhtml
10
+ benchmark/bench_templates/view/small.erb
11
+ benchmark/bench_templates/view/small.haml
12
+ benchmark/bench_templates/view/small.xhtml
6
13
  benchmark/results.txt
7
14
  benchmark/run.rb
8
15
  benchmark/suite/minimal.rb
@@ -10,8 +17,8 @@ benchmark/suite/no_informer.rb
10
17
  benchmark/suite/no_sessions.rb
11
18
  benchmark/suite/no_template.rb
12
19
  benchmark/suite/simple.rb
13
- benchmark/suite/template_builder.rb
14
20
  benchmark/suite/template_erubis.rb
21
+ benchmark/suite/template_etanni.rb
15
22
  benchmark/suite/template_ezamar.rb
16
23
  benchmark/suite/template_haml.rb
17
24
  benchmark/suite/template_liquid.rb
@@ -69,15 +76,15 @@ examples/app/blog/view/feed.atom.nag
69
76
  examples/app/blog/view/feed.rss.nag
70
77
  examples/app/blog/view/index.nag
71
78
  examples/app/blog/view/tag/index.nag
72
- examples/app/chat/layout/default.nag
79
+ examples/app/chat/layout/default.xhtml
73
80
  examples/app/chat/model/history.rb
74
81
  examples/app/chat/model/message.rb
75
82
  examples/app/chat/public/css/chat.css
76
83
  examples/app/chat/public/js/chat.js
77
84
  examples/app/chat/public/js/jquery.js
78
85
  examples/app/chat/start.rb
79
- examples/app/chat/view/chat.nag
80
- examples/app/chat/view/index.nag
86
+ examples/app/chat/view/chat.xhtml
87
+ examples/app/chat/view/index.xhtml
81
88
  examples/app/localization/start.rb
82
89
  examples/app/sourceview/public/coderay.css
83
90
  examples/app/sourceview/public/images/file.gif
@@ -279,7 +286,6 @@ lib/ramaze/snippets/binding/locals.rb
279
286
  lib/ramaze/snippets/blankslate.rb
280
287
  lib/ramaze/snippets/divide.rb
281
288
  lib/ramaze/snippets/fiber.rb
282
- lib/ramaze/snippets/kernel/constant.rb
283
289
  lib/ramaze/snippets/kernel/pretty_inspect.rb
284
290
  lib/ramaze/snippets/metaid.rb
285
291
  lib/ramaze/snippets/numeric/filesize_format.rb
@@ -310,12 +316,14 @@ lib/ramaze/spec/helper/bacon.rb
310
316
  lib/ramaze/spec/helper/pretty_output.rb
311
317
  lib/ramaze/spec/helper/snippets.rb
312
318
  lib/ramaze/spec/helper/template_examples.rb
319
+ lib/ramaze/tool/bin.rb
313
320
  lib/ramaze/tool/create.rb
314
321
  lib/ramaze/tool/project_creator.rb
315
322
  lib/ramaze/version.rb
316
323
  lib/ramaze/view.rb
317
324
  lib/ramaze/view/erubis.rb
318
325
  lib/ramaze/view/ezamar.rb
326
+ lib/ramaze/view/gestalt.rb
319
327
  lib/ramaze/view/haml.rb
320
328
  lib/ramaze/view/liquid.rb
321
329
  lib/ramaze/view/maruku.rb
@@ -427,6 +435,8 @@ spec/ramaze/view/erubis/sum.rhtml
427
435
  spec/ramaze/view/ezamar.rb
428
436
  spec/ramaze/view/ezamar/external.zmr
429
437
  spec/ramaze/view/ezamar/sum.zmr
438
+ spec/ramaze/view/gestalt.rb
439
+ spec/ramaze/view/gestalt/external.ges
430
440
  spec/ramaze/view/haml.rb
431
441
  spec/ramaze/view/haml/external.haml
432
442
  spec/ramaze/view/haml/sum.haml
@@ -399,20 +399,6 @@ For help you can:
399
399
  - Join the Mailinglist at http://ramaze.rubyforge.org
400
400
 
401
401
 
402
- # Appendix
403
-
404
- * Performance
405
- * Serving
406
-
407
- For best performance you should consider using Mongrel to host your
408
- application.
409
-
410
- * Caching
411
-
412
- You can easily cache your pages using the CacheHelper.
413
- Also, using MemCache gives you high-end performance and security.
414
-
415
-
416
402
  # And thanks to...
417
403
 
418
404
  There is a large number of people who made Ramaze possibe by their ongoing
data/Rakefile CHANGED
@@ -11,11 +11,11 @@ PROJECT_SPECS = FileList[
11
11
  'lib/proto/spec/*.rb'
12
12
  ]
13
13
 
14
- PROJECT_MODULE = 'Ramaze'
14
+ PROJECT_MODULE = 'Ramaze'
15
15
  PROJECT_JQUERY_FILE = 'lib/proto/public/js/jquery.js'
16
- PROJECT_README = 'README.markdown'
17
- PROJECT_RUBYFORGE_GROUP_ID = 3034
18
- PROJECT_COPYRIGHT = [
16
+ PROJECT_README = 'README.md'
17
+ PROJECT_VERSION = ENV['VERSION'] || Date.today.strftime('%Y.%m.%d')
18
+ PROJECT_COPYRIGHT = [
19
19
  "# Copyright (c) #{Time.now.year} Michael Fellinger m.fellinger@gmail.com",
20
20
  "# All files in this distribution are subject to the terms of the Ruby license."
21
21
  ]
@@ -31,30 +31,30 @@ GEMSPEC = Gem::Specification.new{|s|
31
31
  s.email = 'm.fellinger@gmail.com'
32
32
  s.homepage = 'http://github.com/manveru/org'
33
33
  s.platform = Gem::Platform::RUBY
34
- s.version = (ENV['PROJECT_VERSION'] || Date.today.strftime("%Y.%m.%d"))
34
+ s.version = PROJECT_VERSION
35
35
  s.files = `git ls-files`.split("\n").sort
36
36
  s.has_rdoc = true
37
37
  s.require_path = 'lib'
38
- s.bindir = "bin"
39
- s.executables = ["ramaze"]
38
+ s.bindir = "bin"
39
+ s.executables = ["ramaze"]
40
40
  s.rubyforge_project = "ramaze"
41
41
 
42
- s.add_dependency('rack', '= 1.0.0')
43
- s.add_dependency('innate', '= 2009.04')
42
+ s.add_dependency('innate', '~> 2009.05')
44
43
 
45
- # s.add_development_dependency('rack-test', '>=0.1.0')
46
- # s.add_development_dependency('json', '>=1.1.3')
47
- # s.add_development_dependency('erubis', '>=2.6.4')
44
+ # rip those out if they cause you trouble
45
+ # s.add_development_dependency('rack-test', '>=0.2.0')
46
+ # s.add_development_dependency('json', '>=1.1.3')
47
+ # s.add_development_dependency('erubis', '>=2.6.4')
48
48
  # s.add_development_dependency('ezamar')
49
- # s.add_development_dependency('haml', '~>2.0.9')
50
- # s.add_development_dependency('hpricot', '>=0.7')
51
- # s.add_development_dependency('liquid', '~>2.0.0')
52
- # s.add_development_dependency('memcache', '~>1.7.0')
49
+ # s.add_development_dependency('haml', '~>2.0.9')
50
+ # s.add_development_dependency('hpricot', '>=0.8.1')
51
+ # s.add_development_dependency('liquid', '~>2.0.0')
52
+ # s.add_development_dependency('memcache-client', '~>1.7.2')
53
53
  # s.add_development_dependency('nagoro')
54
- # s.add_development_dependency('Remarkably', '~>0.5.2')
55
- # s.add_development_dependency('sequel', '>=2.11.0')
56
- # s.add_development_dependency('tagz', '>=5.0.1')
57
- # s.add_development_dependency('tenjin', '~>0.6.1')
54
+ # s.add_development_dependency('Remarkably', '~>0.5.2')
55
+ # s.add_development_dependency('sequel', '= 3.0.0')
56
+ # s.add_development_dependency('tagz', '>=5.0.1')
57
+ # s.add_development_dependency('tenjin', '~>0.6.1')
58
58
 
59
59
  s.post_install_message = <<MESSAGE.strip
60
60
  ============================================================
@@ -0,0 +1,67 @@
1
+ require 'ramaze'
2
+
3
+ class BenchCore < Ramaze::Controller
4
+ map '/'
5
+ end
6
+
7
+ Ramaze.start(:started => true)
8
+
9
+ Innate::Log.loggers.clear
10
+
11
+ require 'benchmark'
12
+
13
+ Benchmark.bmbm(20) do |b|
14
+ n = 500
15
+ urls = ['/small', '/large']
16
+ engines = %w[Etanni Haml ERB]
17
+
18
+ urls.each do |url|
19
+ engines.each do |engine|
20
+ b.report("Unached %10s %p:" % [engine, url]) do
21
+ BenchCore.provide(:html, :engine => engine)
22
+ Innate::View.options.cache = false
23
+ n.times{ Innate::Mock.get(url) }
24
+ end
25
+
26
+ b.report("Cached %11s %p:" % [engine, url]) do
27
+ BenchCore.provide(:html, :engine => engine)
28
+ Innate::Cache.view.clear
29
+ Innate::View.options.cache = true
30
+ n.times{ Innate::Mock.get(url) }
31
+ end
32
+ end
33
+ end
34
+ end
35
+
36
+ __END__
37
+ This benchmark is from Sat May 2 14:58:14 JST 2009
38
+ n = 500
39
+
40
+ Rehearsal ----------------------------------------------------------------
41
+ Unached Etanni "/small": 6.560000 0.490000 7.050000 ( 7.138829)
42
+ Cached Etanni "/small": 6.370000 0.420000 6.790000 ( 6.859946)
43
+ Unached Haml "/small": 8.680000 0.600000 9.280000 ( 9.379500)
44
+ Cached Haml "/small": 6.830000 0.370000 7.200000 ( 7.239311)
45
+ Unached ERB "/small": 8.980000 0.540000 9.520000 ( 9.585725)
46
+ Cached ERB "/small": 6.470000 0.450000 6.920000 ( 6.961339)
47
+ Unached Etanni "/large": 7.800000 0.490000 8.290000 ( 8.338521)
48
+ Cached Etanni "/large": 7.480000 0.400000 7.880000 ( 7.927069)
49
+ Unached Haml "/large": 11.970000 0.620000 12.590000 ( 12.645620)
50
+ Cached Haml "/large": 6.760000 0.490000 7.250000 ( 7.296633)
51
+ Unached ERB "/large": 20.700000 1.000000 21.700000 ( 21.752810)
52
+ Cached ERB "/large": 7.590000 0.430000 8.020000 ( 8.079993)
53
+ ----------------------------------------------------- total: 112.490000sec
54
+
55
+ user system total real
56
+ Unached Etanni "/small": 6.450000 0.420000 6.870000 ( 6.869656)
57
+ Cached Etanni "/small": 6.280000 0.420000 6.700000 ( 6.702520)
58
+ Unached Haml "/small": 8.810000 0.510000 9.320000 ( 9.343563)
59
+ Cached Haml "/small": 6.670000 0.450000 7.120000 ( 7.125798)
60
+ Unached ERB "/small": 8.890000 0.540000 9.430000 ( 9.450362)
61
+ Cached ERB "/small": 6.530000 0.400000 6.930000 ( 6.942688)
62
+ Unached Etanni "/large": 7.830000 0.500000 8.330000 ( 8.348678)
63
+ Cached Etanni "/large": 7.320000 0.470000 7.790000 ( 7.798482)
64
+ Unached Haml "/large": 11.880000 0.630000 12.510000 ( 12.531796)
65
+ Cached Haml "/large": 6.870000 0.410000 7.280000 ( 7.298600)
66
+ Unached ERB "/large": 20.570000 0.930000 21.500000 ( 21.523399)
67
+ Cached ERB "/large": 7.560000 0.430000 7.990000 ( 7.999896)
@@ -0,0 +1,79 @@
1
+ <html>
2
+ <head>
3
+ <title>
4
+ <% if @title %>
5
+ <%= @title %>
6
+ <% end %>
7
+ </title>
8
+ </head>
9
+ <body>
10
+ <h1>
11
+ <% if @h1 %>
12
+ <%= @h1 %>
13
+ <% end %>
14
+ </h1>
15
+ <div>
16
+ <% if @v1 %>
17
+ <% if @v2 %>
18
+ <% if @v3 %>
19
+ <% if @v4 %>
20
+ <% if @v5 %>
21
+ <% if @v6 %>
22
+ <% if @v7 %>
23
+ <% if @v8 %>
24
+ <% if @v9 %>
25
+ <% if @v10 %>
26
+ <% if @v11 %>
27
+ <% if @v12 %>
28
+ <% if @v13 %>
29
+ <% if @v14 %>
30
+ <% if @v15 %>
31
+ <% if @v16 %>
32
+ <% if @v17 %>
33
+ <% if @v18 %>
34
+ <% if @v19 %>
35
+ <% if @v20 %>
36
+ <% if @v21 %>
37
+ <% if @v22 %>
38
+ <% if @v23 %>
39
+ <% if @v24 %>
40
+ <% if @v25 %>
41
+ <% if @v26 %>
42
+ <% if @v27 %>
43
+ <% if @v28 %>
44
+ <% if @v29 %>
45
+ <% if @v30 %>
46
+ <%= stuff %>
47
+ <% end %>
48
+ <% end %>
49
+ <% end %>
50
+ <% end %>
51
+ <% end %>
52
+ <% end %>
53
+ <% end %>
54
+ <% end %>
55
+ <% end %>
56
+ <% end %>
57
+ <% end %>
58
+ <% end %>
59
+ <% end %>
60
+ <% end %>
61
+ <% end %>
62
+ <% end %>
63
+ <% end %>
64
+ <% end %>
65
+ <% end %>
66
+ <% end %>
67
+ <% end %>
68
+ <% end %>
69
+ <% end %>
70
+ <% end %>
71
+ <% end %>
72
+ <% end %>
73
+ <% end %>
74
+ <% end %>
75
+ <% end %>
76
+ <% end %>
77
+ </div>
78
+ </body>
79
+ </html>