haml 1.8.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of haml might be problematic. Click here for more details.

Files changed (77) hide show
  1. data/FAQ +138 -0
  2. data/MIT-LICENSE +1 -1
  3. data/{README → README.rdoc} +66 -3
  4. data/Rakefile +111 -147
  5. data/VERSION +1 -1
  6. data/bin/css2sass +0 -0
  7. data/bin/haml +0 -0
  8. data/bin/html2haml +0 -0
  9. data/bin/sass +0 -0
  10. data/init.rb +6 -1
  11. data/lib/haml.rb +464 -201
  12. data/lib/haml/buffer.rb +117 -63
  13. data/lib/haml/engine.rb +63 -44
  14. data/lib/haml/error.rb +16 -6
  15. data/lib/haml/exec.rb +37 -7
  16. data/lib/haml/filters.rb +213 -68
  17. data/lib/haml/helpers.rb +95 -60
  18. data/lib/haml/helpers/action_view_extensions.rb +1 -1
  19. data/lib/haml/helpers/action_view_mods.rb +54 -6
  20. data/lib/haml/html.rb +6 -6
  21. data/lib/haml/precompiler.rb +254 -133
  22. data/lib/haml/template.rb +3 -6
  23. data/lib/haml/template/patch.rb +9 -2
  24. data/lib/haml/template/plugin.rb +52 -23
  25. data/lib/sass.rb +157 -12
  26. data/lib/sass/constant.rb +22 -22
  27. data/lib/sass/constant/color.rb +13 -13
  28. data/lib/sass/constant/literal.rb +7 -7
  29. data/lib/sass/constant/number.rb +9 -9
  30. data/lib/sass/constant/operation.rb +4 -4
  31. data/lib/sass/constant/string.rb +3 -3
  32. data/lib/sass/css.rb +104 -31
  33. data/lib/sass/engine.rb +120 -39
  34. data/lib/sass/error.rb +1 -1
  35. data/lib/sass/plugin.rb +14 -3
  36. data/lib/sass/plugin/merb.rb +6 -2
  37. data/lib/sass/tree/attr_node.rb +5 -5
  38. data/lib/sass/tree/directive_node.rb +2 -7
  39. data/lib/sass/tree/node.rb +1 -12
  40. data/lib/sass/tree/rule_node.rb +39 -31
  41. data/lib/sass/tree/value_node.rb +1 -1
  42. data/test/benchmark.rb +67 -80
  43. data/test/haml/engine_test.rb +284 -84
  44. data/test/haml/helper_test.rb +51 -15
  45. data/test/haml/results/content_for_layout.xhtml +1 -2
  46. data/test/haml/results/eval_suppressed.xhtml +2 -4
  47. data/test/haml/results/filters.xhtml +44 -15
  48. data/test/haml/results/helpers.xhtml +2 -3
  49. data/test/haml/results/just_stuff.xhtml +2 -6
  50. data/test/haml/results/nuke_inner_whitespace.xhtml +34 -0
  51. data/test/haml/results/nuke_outer_whitespace.xhtml +148 -0
  52. data/test/haml/results/original_engine.xhtml +3 -7
  53. data/test/haml/results/partials.xhtml +1 -0
  54. data/test/haml/results/tag_parsing.xhtml +1 -6
  55. data/test/haml/results/very_basic.xhtml +2 -4
  56. data/test/haml/results/whitespace_handling.xhtml +13 -21
  57. data/test/haml/template_test.rb +8 -15
  58. data/test/haml/templates/_partial.haml +1 -0
  59. data/test/haml/templates/filters.haml +48 -7
  60. data/test/haml/templates/just_stuff.haml +1 -2
  61. data/test/haml/templates/nuke_inner_whitespace.haml +26 -0
  62. data/test/haml/templates/nuke_outer_whitespace.haml +144 -0
  63. data/test/haml/templates/tag_parsing.haml +0 -3
  64. data/test/haml/test_helper.rb +15 -0
  65. data/test/sass/engine_test.rb +80 -34
  66. data/test/sass/plugin_test.rb +1 -1
  67. data/test/sass/results/import.css +2 -2
  68. data/test/sass/results/mixins.css +95 -0
  69. data/test/sass/results/multiline.css +24 -0
  70. data/test/sass/templates/import.sass +4 -1
  71. data/test/sass/templates/importee.sass +4 -0
  72. data/test/sass/templates/mixins.sass +76 -0
  73. data/test/sass/templates/multiline.sass +20 -0
  74. metadata +65 -51
  75. data/lib/haml/util.rb +0 -18
  76. data/test/haml/runner.rb +0 -16
  77. data/test/profile.rb +0 -65
metadata CHANGED
@@ -1,35 +1,33 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: haml
5
3
  version: !ruby/object:Gem::Version
6
- version: 1.8.2
7
- date: 2008-02-24 00:00:00 -08:00
8
- summary: An elegant, structured XHTML/XML templating engine. Comes with Sass, a similar CSS templating engine.
9
- require_paths:
10
- - lib
11
- email: haml@googlegroups.com
12
- homepage: http://haml.hamptoncatlin.com/
13
- rubyforge_project:
14
- description: Haml (HTML Abstraction Markup Language) is a layer on top of XHTML or XML that's designed to express the structure of XHTML or XML documents in a non-repetitive, elegant, easy way, using indentation rather than closing tags and allowing Ruby to be embedded with ease. It was originally envisioned as a plugin for Ruby on Rails, but it can function as a stand-alone templating engine.
15
- autorequire:
16
- - haml
17
- - sass
18
- default_executable:
19
- bindir: bin
20
- has_rdoc: true
21
- required_ruby_version: !ruby/object:Gem::Version::Requirement
22
- requirements:
23
- - - ">"
24
- - !ruby/object:Gem::Version
25
- version: 0.0.0
26
- version:
4
+ version: 2.0.0
27
5
  platform: ruby
28
- signing_key:
29
- cert_chain:
30
- post_install_message:
31
6
  authors:
7
+ - Nathan Weizenbaum
32
8
  - Hampton Catlin
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2008-05-23 00:00:00 -07:00
14
+ default_executable:
15
+ dependencies: []
16
+
17
+ description: Haml (HTML Abstraction Markup Language) is a layer on top of XHTML or XML that's designed to express the structure of XHTML or XML documents in a non-repetitive, elegant, easy way, using indentation rather than closing tags and allowing Ruby to be embedded with ease. It was originally envisioned as a plugin for Ruby on Rails, but it can function as a stand-alone templating engine.
18
+ email: haml@googlegroups.com
19
+ executables:
20
+ - haml
21
+ - html2haml
22
+ - sass
23
+ - css2sass
24
+ extensions: []
25
+
26
+ extra_rdoc_files:
27
+ - VERSION
28
+ - MIT-LICENSE
29
+ - README.rdoc
30
+ - FAQ
33
31
  files:
34
32
  - lib/sass.rb
35
33
  - lib/sass
@@ -55,7 +53,6 @@ files:
55
53
  - lib/sass/css.rb
56
54
  - lib/sass/engine.rb
57
55
  - lib/haml
58
- - lib/haml/util.rb
59
56
  - lib/haml/exec.rb
60
57
  - lib/haml/html.rb
61
58
  - lib/haml/error.rb
@@ -88,6 +85,8 @@ files:
88
85
  - test/sass/templates/subdir/nested_subdir/nested_subdir.sass
89
86
  - test/sass/templates/basic.sass
90
87
  - test/sass/templates/_partial.sass
88
+ - test/sass/templates/mixins.sass
89
+ - test/sass/templates/multiline.sass
91
90
  - test/sass/templates/nested.sass
92
91
  - test/sass/templates/compact.sass
93
92
  - test/sass/templates/alt.sass
@@ -107,10 +106,12 @@ files:
107
106
  - test/sass/results/compact.css
108
107
  - test/sass/results/expanded.css
109
108
  - test/sass/results/alt.css
109
+ - test/sass/results/mixins.css
110
110
  - test/sass/results/complex.css
111
111
  - test/sass/results/constants.css
112
112
  - test/sass/results/compressed.css
113
113
  - test/sass/results/parent_ref.css
114
+ - test/sass/results/multiline.css
114
115
  - test/sass/results/basic.css
115
116
  - test/sass/engine_test.rb
116
117
  - test/haml
@@ -128,11 +129,13 @@ files:
128
129
  - test/haml/templates/list.haml
129
130
  - test/haml/templates/_text_area.haml
130
131
  - test/haml/templates/_partial.haml
132
+ - test/haml/templates/nuke_outer_whitespace.haml
131
133
  - test/haml/templates/_av_partial_2.haml
132
134
  - test/haml/templates/helpful.haml
133
135
  - test/haml/templates/just_stuff.haml
134
136
  - test/haml/templates/silent_script.haml
135
137
  - test/haml/templates/very_basic.haml
138
+ - test/haml/templates/nuke_inner_whitespace.haml
136
139
  - test/haml/templates/eval_suppressed.haml
137
140
  - test/haml/templates/tag_parsing.haml
138
141
  - test/haml/templates/whitespace_handling.haml
@@ -146,14 +149,16 @@ files:
146
149
  - test/haml/templates/original_engine.haml
147
150
  - test/haml/templates/breakage.haml
148
151
  - test/haml/templates/action_view.haml
149
- - test/haml/runner.rb
152
+ - test/haml/test_helper.rb
150
153
  - test/haml/results
151
154
  - test/haml/results/content_for_layout.xhtml
152
155
  - test/haml/results/just_stuff.xhtml
153
156
  - test/haml/results/whitespace_handling.xhtml
157
+ - test/haml/results/nuke_outer_whitespace.xhtml
154
158
  - test/haml/results/silent_script.xhtml
155
159
  - test/haml/results/filters.xhtml
156
160
  - test/haml/results/standard.xhtml
161
+ - test/haml/results/nuke_inner_whitespace.xhtml
157
162
  - test/haml/results/helpful.xhtml
158
163
  - test/haml/results/very_basic.xhtml
159
164
  - test/haml/results/eval_suppressed.xhtml
@@ -165,41 +170,50 @@ files:
165
170
  - test/haml/markaby
166
171
  - test/haml/markaby/standard.mab
167
172
  - test/haml/engine_test.rb
168
- - test/profile.rb
169
173
  - test/benchmark.rb
170
174
  - Rakefile
171
175
  - init.rb
172
176
  - VERSION
173
177
  - MIT-LICENSE
174
- - README
175
- test_files:
176
- - test/sass/plugin_test.rb
177
- - test/sass/engine_test.rb
178
- - test/haml/template_test.rb
179
- - test/haml/html2haml_test.rb
180
- - test/haml/helper_test.rb
181
- - test/haml/engine_test.rb
178
+ - README.rdoc
179
+ - FAQ
180
+ has_rdoc: true
181
+ homepage: http://haml.hamptoncatlin.com/
182
+ post_install_message:
182
183
  rdoc_options:
183
184
  - --title
184
185
  - Haml
185
186
  - --main
186
- - README
187
+ - README.rdoc
187
188
  - --exclude
188
189
  - lib/haml/buffer.rb
189
190
  - --line-numbers
190
191
  - --inline-source
191
- extra_rdoc_files:
192
- - VERSION
193
- - MIT-LICENSE
194
- - README
195
- executables:
196
- - haml
197
- - html2haml
198
- - sass
199
- - css2sass
200
- extensions: []
201
-
192
+ require_paths:
193
+ - lib
194
+ required_ruby_version: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: "0"
199
+ version:
200
+ required_rubygems_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: "0"
205
+ version:
202
206
  requirements: []
203
207
 
204
- dependencies: []
205
-
208
+ rubyforge_project: haml
209
+ rubygems_version: 1.1.1
210
+ signing_key:
211
+ specification_version: 2
212
+ summary: An elegant, structured XHTML/XML templating engine. Comes with Sass, a similar CSS templating engine.
213
+ test_files:
214
+ - test/sass/plugin_test.rb
215
+ - test/sass/engine_test.rb
216
+ - test/haml/template_test.rb
217
+ - test/haml/html2haml_test.rb
218
+ - test/haml/helper_test.rb
219
+ - test/haml/engine_test.rb
@@ -1,18 +0,0 @@
1
- # This file contains various useful bits of code
2
- # that are shared between Haml and Sass.
3
-
4
- class Hash # :nodoc:
5
- # Same as Hash#merge!,
6
- # but recursively merges sub-hashes
7
- def rec_merge!(other)
8
- other.each do |key, value|
9
- myval = self[key]
10
- if value.is_a?(Hash) && myval.is_a?(Hash)
11
- myval.rec_merge!(value)
12
- else
13
- self[key] = value
14
- end
15
- end
16
- self
17
- end
18
- end
@@ -1,16 +0,0 @@
1
- require 'rubygems'
2
- require 'active_support'
3
- require 'action_controller'
4
- require 'action_view'
5
- require '../../lib/haml/template'
6
- require 'fileutils'
7
-
8
- haml_template_engine = Haml::Template.new(ActionView::Base.new)
9
- haml_template_engine.render(File.dirname(__FILE__) + '/templates/standard.haml')
10
-
11
- begin
12
- eval(File.read("template_test.rb"))
13
- rescue StandardError => e
14
- puts e.backtrace
15
- puts e.inspect
16
- end
@@ -1,65 +0,0 @@
1
- require 'rubygems'
2
- require 'active_support'
3
- require 'action_controller'
4
- require 'action_view'
5
-
6
- require File.dirname(__FILE__) + '/../lib/haml'
7
- require 'haml/template'
8
-
9
- require 'profiler'
10
- require 'stringio'
11
-
12
- module Haml
13
- # Used by both Haml::Profiler and Sass::Profiler.
14
- # Encapsulates profiling behavior.
15
- module AbstractProfiler
16
- def self.profile(times, &block)
17
- # Runs the profiler, collects information
18
- Profiler__::start_profile
19
- times.times &block
20
- Profiler__::stop_profile
21
-
22
- # Outputs information to a StringIO, returns result
23
- io = StringIO.new
24
- Profiler__::print_profile(io)
25
- io.pos = 0
26
- result = io.read
27
- io.close
28
- result
29
- end
30
- end
31
-
32
- # A profiler for Haml, mostly for development use. This simply implements
33
- # the Ruby profiler for profiling haml code.
34
- class Profiler
35
-
36
- # Creates a new profiler that looks for templates in the base
37
- # directory.
38
- def initialize(base = File.join(File.dirname(__FILE__), 'haml', 'templates'))
39
- unless base.class == ActionView::Base
40
- @base = ActionView::Base.new(base)
41
- else
42
- @base = base
43
- end
44
- end
45
-
46
- # Profiles haml on the given template with the given number of runs.
47
- # The template name shouldn't have a file extension; this will
48
- # automatically look for a haml template.
49
- #
50
- # Returns the results of the profiling as a string.
51
- def profile(runs = 100, template_name = 'standard')
52
- AbstractProfiler.profile(runs) { @base.render template_name }
53
- end
54
- end
55
- end
56
-
57
- module Sass
58
- class Profiler
59
- def profile(runs = 100, template_name = 'complex')
60
- Haml::AbstractProfiler.profile(runs) do
61
- Sass::Engine.new("#{File.dirname(__FILE__)}/sass/templates/#{template_name}.sass").render
62
- end
63
- end
64
- end
65
- end