haml 2.0.6 → 2.0.7

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.

data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.6
1
+ 2.0.7
@@ -1053,4 +1053,5 @@ module Haml
1053
1053
  end
1054
1054
  end
1055
1055
 
1056
+ require 'haml/util'
1056
1057
  require 'haml/engine'
@@ -105,6 +105,7 @@ module Haml
105
105
  tabulation = @real_tabs
106
106
 
107
107
  result = result.to_s.rstrip
108
+ result = result.lstrip if nuke_inner_whitespace
108
109
  result = html_escape(result) if escape_html
109
110
 
110
111
  if preserve_tag
@@ -249,13 +249,13 @@ END
249
249
  def render(text)
250
250
  engine = case @required
251
251
  when 'rdiscount'
252
- RDiscount
252
+ ::RDiscount
253
253
  when 'peg_markdown'
254
- PEGMarkdown
254
+ ::PEGMarkdown
255
255
  when 'maruku'
256
- Maruku
256
+ ::Maruku
257
257
  when 'bluecloth'
258
- BlueCloth
258
+ ::BlueCloth
259
259
  end
260
260
  engine.new(text).to_html
261
261
  end
@@ -266,7 +266,7 @@ END
266
266
  lazy_require 'maruku'
267
267
 
268
268
  def render(text)
269
- Maruku.new(text).to_html
269
+ ::Maruku.new(text).to_html
270
270
  end
271
271
  end
272
272
  end
@@ -254,17 +254,17 @@ module Haml
254
254
  # the local variable <tt>foo</tt> would be assigned to "<p>13</p>\n".
255
255
  #
256
256
  def capture_haml(*args, &block)
257
- buffer = eval('_hamlout', block) rescue haml_buffer
257
+ buffer = eval('_hamlout', block.binding) rescue haml_buffer
258
258
  with_haml_buffer(buffer) do
259
259
  position = haml_buffer.buffer.length
260
260
 
261
261
  block.call(*args)
262
262
 
263
- captured = haml_buffer.buffer.slice!(position..-1)
263
+ captured = haml_buffer.buffer.slice!(position..-1).split(/^/)
264
264
 
265
265
  min_tabs = nil
266
266
  captured.each do |line|
267
- tabs = line.index(/[^ ]/)
267
+ tabs = line.index(/[^ ]/) || line.length
268
268
  min_tabs ||= tabs
269
269
  min_tabs = min_tabs > tabs ? tabs : min_tabs
270
270
  end
@@ -287,10 +287,15 @@ END
287
287
 
288
288
  # Outputs text directly to the Haml buffer, with the proper tabulation
289
289
  def haml_concat(text = "")
290
- haml_buffer.buffer << (' ' * haml_buffer.tabulation) << text.to_s << "\n"
290
+ haml_buffer.buffer << haml_indent << text.to_s << "\n"
291
291
  nil
292
292
  end
293
293
 
294
+ # Returns the string that should be used to indent the current line
295
+ def haml_indent
296
+ ' ' * haml_buffer.tabulation
297
+ end
298
+
294
299
  #
295
300
  # call-seq:
296
301
  # haml_tag(name, *flags, attributes = {}) {...}
@@ -407,7 +412,7 @@ END
407
412
 
408
413
  # Returns whether or not +block+ is defined directly in a Haml template.
409
414
  def block_is_haml?(block)
410
- eval('_hamlout', block)
415
+ eval('_hamlout', block.binding)
411
416
  true
412
417
  rescue
413
418
  false
@@ -17,7 +17,7 @@ if defined?(ActionView) and not defined?(Merb::Plugins)
17
17
  alias_method :render, :render_with_haml
18
18
 
19
19
  # Rails >2.1
20
- if instance_methods.include?('output_buffer')
20
+ if Haml::Util.has?(:instance_method, self, :output_buffer)
21
21
  def output_buffer_with_haml
22
22
  return haml_buffer.buffer if is_haml?
23
23
  output_buffer_without_haml
@@ -44,7 +44,7 @@ if defined?(ActionView) and not defined?(Merb::Plugins)
44
44
  # In Rails <=2.1, we've got to override considerable capturing infrastructure.
45
45
  # In Rails >2.1, we can make do with only overriding #capture
46
46
  # (which no longer behaves differently in helper contexts).
47
- unless ActionView::Base.instance_methods.include?('output_buffer')
47
+ unless Haml::Util.has?(:instance_method, ActionView::Base, :output_buffer)
48
48
  module CaptureHelper
49
49
  def capture_with_haml(*args, &block)
50
50
  # Rails' #capture helper will just return the value of the block
@@ -141,10 +141,12 @@ if defined?(ActionView) and not defined?(Merb::Plugins)
141
141
  tab_up
142
142
  oldproc.call(*args)
143
143
  tab_down
144
+ concat haml_indent
144
145
  end
146
+ concat haml_indent
145
147
  end
146
148
  res = form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc) + "\n"
147
- concat "\n" if block_given? && is_haml?
149
+ concat "\n" if block_given?
148
150
  res
149
151
  else
150
152
  form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc)
@@ -162,7 +164,9 @@ if defined?(ActionView) and not defined?(Merb::Plugins)
162
164
  tab_up
163
165
  oldproc.call(*args)
164
166
  tab_down
167
+ concat haml_indent
165
168
  end
169
+ concat haml_indent
166
170
  end
167
171
  form_for_without_haml(object_name, *args, &proc)
168
172
  concat "\n" if block_given? && is_haml?
@@ -0,0 +1,15 @@
1
+ module Haml
2
+ module Util
3
+ class << self; include Haml::Util; end
4
+
5
+ RUBY_VERSION = ::RUBY_VERSION.split(".").map {|s| s.to_i}
6
+
7
+ def ruby1_8?
8
+ Haml::Util::RUBY_VERSION[0] == 1 && Haml::Util::RUBY_VERSION[1] < 9
9
+ end
10
+
11
+ def has?(attr, klass, method)
12
+ klass.send("#{attr}s").include?(ruby1_8? ? method.to_s : method.to_sym)
13
+ end
14
+ end
15
+ end
@@ -14,19 +14,11 @@ end
14
14
  require File.dirname(__FILE__) + '/../lib/haml'
15
15
  require File.dirname(__FILE__) + '/linked_rails'
16
16
  %w[sass rubygems erb erubis markaby active_support action_controller
17
- action_view haml/template].each(&method(:require))
18
-
19
- begin
20
- require 'benchwarmer'
21
- rescue LoadError
22
- # Since it's not as simple as gem install at the time of writing,
23
- # we need to direct folks to the benchwarmer gem.
24
- raise "The Haml benchmarks require the benchwarmer gem, available from http://github.com/wycats/benchwarmer"
25
- end
17
+ action_view action_pack haml/template rbench].each {|dep| require(dep)}
26
18
 
27
19
  def view
28
- unless ActionView::Base.instance_methods.include? 'finder'
29
- return ActionView::Base.new(File.dirname(__FILE__), vars)
20
+ unless Haml::Util.has?(:instance_method, ActionView::Base, :finder)
21
+ return ActionView::Base.new(File.dirname(__FILE__), {})
30
22
  end
31
23
 
32
24
  # Rails >=2.1.0
@@ -35,9 +27,15 @@ def view
35
27
  base
36
28
  end
37
29
 
38
- Benchmark.warmer(times) do
39
- columns :haml, :erb, :erubis, :mab
40
- titles :haml => "Haml", :erb => "ERB", :erubis => "Erubis", :mab => "Markaby"
30
+ def render(view, file)
31
+ view.render :file => file
32
+ end
33
+
34
+ RBench.run(times) do
35
+ column :haml, :title => "Haml"
36
+ column :haml_ugly, :title => "Haml :ugly"
37
+ column :erb, :title => "ERB"
38
+ column :erubis, :title => "Erubis"
41
39
 
42
40
  template_name = 'standard'
43
41
  directory = File.dirname(__FILE__) + '/haml'
@@ -45,49 +43,56 @@ Benchmark.warmer(times) do
45
43
  erb_template = File.read("#{directory}/rhtml/#{template_name}.rhtml")
46
44
  markaby_template = File.read("#{directory}/markaby/#{template_name}.mab")
47
45
 
48
- report "Uncached" do
49
- haml { Haml::Engine.new(haml_template).render }
50
- erb { ERB.new(erb_template, nil, '-').result }
51
- erubis { Erubis::Eruby.new(erb_template).result }
52
- mab { Markaby::Template.new(markaby_template).render }
53
- end
54
-
55
46
  report "Cached" do
56
47
  obj = Object.new
57
48
 
58
49
  Haml::Engine.new(haml_template).def_method(obj, :haml)
50
+ Haml::Engine.new(haml_template, :ugly => true).def_method(obj, :haml_ugly)
59
51
  Erubis::Eruby.new(erb_template).def_method(obj, :erubis)
60
52
  obj.instance_eval("def erb; #{ERB.new(erb_template, nil, '-').src}; end")
61
53
 
62
- haml { obj.haml }
63
- erb { obj.erb }
64
- erubis { obj.erubis }
54
+ haml { obj.haml }
55
+ haml_ugly { obj.haml_ugly }
56
+ erb { obj.erb }
57
+ erubis { obj.erubis }
65
58
  end
66
59
 
67
60
  report "ActionView" do
68
61
  @base = view
69
62
 
63
+ @base.unmemoize_all
64
+ Haml::Template.options[:ugly] = false
70
65
  # To cache the template
71
- @base.render 'haml/templates/standard'
72
- @base.render 'haml/rhtml/standard'
66
+ render @base, 'haml/templates/standard'
67
+ render @base, 'haml/rhtml/standard'
68
+
69
+ haml { render @base, 'haml/templates/standard' }
70
+ erb { render @base, 'haml/rhtml/standard' }
73
71
 
74
- haml { @base.render 'haml/templates/standard' }
75
- erb { @base.render 'haml/rhtml/standard' }
72
+ Haml::Template.options[:ugly] = true
73
+ render @base, 'haml/templates/standard_ugly'
74
+ haml_ugly { render @base, 'haml/templates/standard_ugly' }
76
75
  end
77
76
 
78
77
  report "ActionView with deep partials" do
79
78
  @base = view
80
79
 
80
+ @base.unmemoize_all
81
+ Haml::Template.options[:ugly] = false
81
82
  # To cache the template
82
- @base.render 'haml/templates/action_view'
83
- @base.render 'haml/rhtml/action_view'
83
+ render @base, 'haml/templates/action_view'
84
+ render @base, 'haml/rhtml/action_view'
85
+
86
+ haml { render @base, 'haml/templates/action_view' }
87
+ erb { render @base, 'haml/rhtml/action_view' }
84
88
 
85
- haml { @base.render 'haml/templates/action_view' }
86
- erb { @base.render 'haml/rhtml/action_view' }
89
+ Haml::Template.options[:ugly] = true
90
+ render @base, 'haml/templates/action_view_ugly'
91
+ haml_ugly { render @base, 'haml/templates/action_view_ugly' }
87
92
  end
88
93
  end
89
94
 
90
- Benchmark.warmer(times) do
95
+ RBench.run(times) do
91
96
  sass_template = File.read("#{File.dirname(__FILE__)}/sass/templates/complex.sass")
92
97
 
93
98
  report("Sass") { Sass::Engine.new(sass_template).render }
@@ -188,6 +188,19 @@ SOURCE
188
188
  render("%p{:foo => 'bar', :bar => false, :baz => 'false'}", :format => :xhtml))
189
189
  end
190
190
 
191
+ def test_whitespace_nuke_with_both_newlines
192
+ # Regression test
193
+ assert_equal("<p>foo</p>\n", render('%p<= "\nfoo\n"'))
194
+ assert_equal(<<HTML, render(<<HAML))
195
+ <p>
196
+ <p>foo</p>
197
+ </p>
198
+ HTML
199
+ %p
200
+ %p<= "\\nfoo\\n"
201
+ HAML
202
+ end
203
+
191
204
  def test_both_whitespace_nukes_work_together
192
205
  assert_equal(<<RESULT, render(<<SOURCE))
193
206
  <p><q>Foo
@@ -308,6 +321,16 @@ HAML
308
321
  assert_equal("foo&amp;bar\n", render("= 'foo&bar' #comment", :escape_html => true))
309
322
  end
310
323
 
324
+ def test_script_with_if_shouldnt_output
325
+ assert_equal(<<HTML, render(<<HAML))
326
+ <p>foo</p>
327
+ <p></p>
328
+ HTML
329
+ %p= "foo"
330
+ %p= "bar" if false
331
+ HAML
332
+ end
333
+
311
334
  # Options tests
312
335
 
313
336
  def test_filename_and_line
@@ -48,24 +48,26 @@ foo
48
48
  <p>
49
49
  <form action="" method="post">
50
50
  </p>
51
- <form action="" method="post">
52
- <div><input name="commit" type="submit" value="save" /></div>
53
- <p>
54
- @foo =
55
- value one
56
- </p>
57
- Toplevel? false
58
- <p>
59
- @foo =
60
- value three
61
- </p>
62
- </form>
63
- <form action="" method="post">
64
- Title:
65
- <input id="article_title" name="article[title]" size="30" type="text" value="Hello" />
66
- Body:
67
- <input id="article_body" name="article[body]" size="30" type="text" value="World" />
68
- </form>
51
+ <div>
52
+ <form action="" method="post">
53
+ <div><input name="commit" type="submit" value="save" /></div>
54
+ <p>
55
+ @foo =
56
+ value one
57
+ </p>
58
+ Toplevel? false
59
+ <p>
60
+ @foo =
61
+ value three
62
+ </p>
63
+ </form>
64
+ <form action="" method="post">
65
+ Title:
66
+ <input id="article_title" name="article[title]" size="30" type="text" value="Hello" />
67
+ Body:
68
+ <input id="article_body" name="article[body]" size="30" type="text" value="World" />
69
+ </form>
70
+ </div>
69
71
  <li><a href='http://www.google.com'>google</a></li>
70
72
  <p>
71
73
  foo
@@ -38,7 +38,7 @@ class TemplateTest < Test::Unit::TestCase
38
38
  def setup
39
39
  vars = { 'article' => Article.new, 'foo' => 'value one' }
40
40
 
41
- unless ActionView::Base.instance_methods.include? 'finder'
41
+ unless Haml::Util.has?(:instance_method, ActionView::Base, :finder)
42
42
  @base = ActionView::Base.new(TEMPLATE_PATH, vars)
43
43
  else
44
44
  # Rails 2.1.0
@@ -46,7 +46,7 @@ class TemplateTest < Test::Unit::TestCase
46
46
  @base.finder.append_view_path(TEMPLATE_PATH)
47
47
  end
48
48
 
49
- if @base.private_methods.include?('evaluate_assigns')
49
+ if Haml::Util.has?(:private_method, @base, :evaluate_assigns)
50
50
  @base.send(:evaluate_assigns)
51
51
  else
52
52
  # Rails 2.2
@@ -0,0 +1,9 @@
1
+ %h2 This is a pretty complicated partial
2
+ .partial
3
+ %p It has several nested partials,
4
+ %ul
5
+ - 5.times do
6
+ %li
7
+ %strong Partial:
8
+ - @nesting = 5
9
+ = render :partial => 'haml/templates/av_partial_2_ugly'
@@ -0,0 +1,5 @@
1
+ - @nesting -= 1
2
+ .partial{:level => @nesting}
3
+ %h3 This is a crazy deep-nested partial.
4
+ %p== Nesting level #{@nesting}
5
+ = render :partial => 'haml/templates/av_partial_2_ugly' if @nesting > 0
@@ -0,0 +1,47 @@
1
+ !!!
2
+ %html{html_attrs}
3
+ %head
4
+ %title Hampton Catlin Is Totally Awesome
5
+ %meta{"http-equiv" => "Content-Type", :content => "text/html; charset=utf-8"}
6
+ %body
7
+ %h1
8
+ This is very much like the standard template,
9
+ except that it has some ActionView-specific stuff.
10
+ It's only used for benchmarking.
11
+ .crazy_partials= render :partial => 'haml/templates/av_partial_1_ugly'
12
+ / You're In my house now!
13
+ .header
14
+ Yes, ladies and gentileman. He is just that egotistical.
15
+ Fantastic! This should be multi-line output
16
+ The question is if this would translate! Ahah!
17
+ = 1 + 9 + 8 + 2 #numbers should work and this should be ignored
18
+ #body= " Quotes should be loved! Just like people!"
19
+ - 120.times do |number|
20
+ - number
21
+ Wow.|
22
+ %p
23
+ = "Holy cow " + |
24
+ "multiline " + |
25
+ "tags! " + |
26
+ "A pipe (|) even!" |
27
+ = [1, 2, 3].collect { |n| "PipesIgnored|" }
28
+ = [1, 2, 3].collect { |n| |
29
+ n.to_s |
30
+ }.join("|") |
31
+ %div.silent
32
+ - foo = String.new
33
+ - foo << "this"
34
+ - foo << " shouldn't"
35
+ - foo << " evaluate"
36
+ = foo + " but now it should!"
37
+ -# Woah crap a comment!
38
+
39
+ -# That was a line that shouldn't close everything.
40
+ %ul.really.cool
41
+ - ('a'..'f').each do |a|
42
+ %li= a
43
+ #combo.of_divs_with_underscore= @should_eval = "with this text"
44
+ = [ 104, 101, 108, 108, 111 ].map do |byte|
45
+ - byte.chr
46
+ .footer
47
+ %strong.shout= "This is a really long ruby quote. It should be loved and wrapped because its more than 50 characters. This value may change in the future and this test may look stupid. \nSo, I'm just making it *really* long. God, I hope this works"
@@ -42,36 +42,39 @@ click
42
42
  <p>
43
43
  <form action="" method="post">
44
44
  </p>
45
- <form action="" method="post">
46
- <div><input name="commit" type="submit" value="save" /></div>
47
- <p>
48
- @foo =
49
- value one
50
- </p>
51
- Toplevel? false
52
- <p>
53
- @foo =
54
- value three
55
- </p>
56
- </form>
57
- <form action="" method="post">
58
- Title:
59
- <input id="article_title" name="article[title]" size="30" type="text" value="Hello" />
60
- Body:
61
- <input id="article_body" name="article[body]" size="30" type="text" value="World" />
62
- </form>
45
+ <div>
46
+ <form action="" method="post">
47
+ <div><input name="commit" type="submit" value="save" /></div>
48
+ <p>
49
+ @foo =
50
+ value one
51
+ </p>
52
+ Toplevel? false
53
+ <p>
54
+ @foo =
55
+ value three
56
+ </p>
57
+ </form>
58
+ <form action="" method="post">
59
+ Title:
60
+ <input id="article_title" name="article[title]" size="30" type="text" value="Hello" />
61
+ Body:
62
+ <input id="article_body" name="article[body]" size="30" type="text" value="World" />
63
+ </form>
64
+ </div>
63
65
  - else
64
66
  %p
65
67
  = form_tag ''
66
- - form_tag '' do
67
- %div= submit_tag 'save'
68
- - @foo = 'value one'
69
- = test_partial 'partial'
70
- - form_for :article, @article, :url => '' do |f|
71
- Title:
72
- = f.text_field :title
73
- Body:
74
- = f.text_field :body
68
+ %div
69
+ - form_tag '' do
70
+ %div= submit_tag 'save'
71
+ - @foo = 'value one'
72
+ = test_partial 'partial'
73
+ - form_for :article, @article, :url => '' do |f|
74
+ Title:
75
+ = f.text_field :title
76
+ Body:
77
+ = f.text_field :body
75
78
  = list_of({:google => 'http://www.google.com'}) do |name, link|
76
79
  %a{ :href => link }= name
77
80
  %p
@@ -0,0 +1,42 @@
1
+ !!!
2
+ %html{html_attrs}
3
+ %head
4
+ %title Hampton Catlin Is Totally Awesome
5
+ %meta{"http-equiv" => "Content-Type", :content => "text/html; charset=utf-8"}
6
+ %body
7
+ / You're In my house now!
8
+ .header
9
+ Yes, ladies and gentileman. He is just that egotistical.
10
+ Fantastic! This should be multi-line output
11
+ The question is if this would translate! Ahah!
12
+ = 1 + 9 + 8 + 2 #numbers should work and this should be ignored
13
+ #body= " Quotes should be loved! Just like people!"
14
+ - 120.times do |number|
15
+ - number
16
+ Wow.|
17
+ %p
18
+ = "Holy cow " + |
19
+ "multiline " + |
20
+ "tags! " + |
21
+ "A pipe (|) even!" |
22
+ = [1, 2, 3].collect { |n| "PipesIgnored|" }
23
+ = [1, 2, 3].collect { |n| |
24
+ n.to_s |
25
+ }.join("|") |
26
+ %div.silent
27
+ - foo = String.new
28
+ - foo << "this"
29
+ - foo << " shouldn't"
30
+ - foo << " evaluate"
31
+ = foo + " but now it should!"
32
+ -# Woah crap a comment!
33
+
34
+ -# That was a line that shouldn't close everything.
35
+ %ul.really.cool
36
+ - ('a'..'f').each do |a|
37
+ %li= a
38
+ #combo.of_divs_with_underscore= @should_eval = "with this text"
39
+ = [ 104, 101, 108, 108, 111 ].map do |byte|
40
+ - byte.chr
41
+ .footer
42
+ %strong.shout= "This is a really long ruby quote. It should be loved and wrapped because its more than 50 characters. This value may change in the future and this test may look stupid. \nSo, I'm just making it *really* long. God, I hope this works"
@@ -84,13 +84,22 @@ class SassPluginTest < Test::Unit::TestCase
84
84
  end
85
85
 
86
86
  require 'sass/plugin/merb'
87
- MerbHandler.send(:define_method, :process_without_sass) { |*args| }
87
+ if defined?(MerbHandler)
88
+ MerbHandler.send(:define_method, :process_without_sass) { |*args| }
89
+ else
90
+ Merb::Rack::Application.send(:define_method, :call_without_sass) { |*args| }
91
+ end
92
+
88
93
  set_plugin_opts
89
94
 
90
95
  File.delete(tempfile_loc('basic'))
91
96
  assert Sass::Plugin.stylesheet_needs_update?('basic')
92
97
 
93
- MerbHandler.new('.').process nil, nil
98
+ if defined?(MerbHandler)
99
+ MerbHandler.new('.').process nil, nil
100
+ else
101
+ Merb::Rack::Application.new.call(::Rack::MockRequest.env_for('/'))
102
+ end
94
103
 
95
104
  assert !Sass::Plugin.stylesheet_needs_update?('basic')
96
105
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haml
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.6
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Weizenbaum
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2008-12-17 00:00:00 -08:00
13
+ date: 2009-01-22 00:00:00 -08:00
14
14
  default_executable:
15
15
  dependencies: []
16
16
 
@@ -24,167 +24,172 @@ executables:
24
24
  extensions: []
25
25
 
26
26
  extra_rdoc_files:
27
- - VERSION
27
+ - FAQ
28
28
  - MIT-LICENSE
29
+ - VERSION
29
30
  - README.rdoc
30
- - FAQ
31
31
  - REVISION
32
32
  files:
33
33
  - rails/init.rb
34
34
  - lib/sass.rb
35
35
  - lib/sass
36
- - lib/sass/plugin
37
- - lib/sass/plugin/rails.rb
38
- - lib/sass/plugin/merb.rb
36
+ - lib/sass/css.rb
39
37
  - lib/sass/error.rb
40
38
  - lib/sass/tree
39
+ - lib/sass/tree/comment_node.rb
40
+ - lib/sass/tree/node.rb
41
41
  - lib/sass/tree/value_node.rb
42
- - lib/sass/tree/attr_node.rb
43
42
  - lib/sass/tree/directive_node.rb
44
- - lib/sass/tree/node.rb
45
- - lib/sass/tree/comment_node.rb
43
+ - lib/sass/tree/attr_node.rb
46
44
  - lib/sass/tree/rule_node.rb
45
+ - lib/sass/plugin
46
+ - lib/sass/plugin/rails.rb
47
+ - lib/sass/plugin/merb.rb
47
48
  - lib/sass/constant.rb
49
+ - lib/sass/engine.rb
50
+ - lib/sass/plugin.rb
48
51
  - lib/sass/constant
49
- - lib/sass/constant/color.rb
50
- - lib/sass/constant/string.rb
51
52
  - lib/sass/constant/number.rb
52
53
  - lib/sass/constant/operation.rb
53
54
  - lib/sass/constant/literal.rb
55
+ - lib/sass/constant/color.rb
56
+ - lib/sass/constant/string.rb
54
57
  - lib/sass/constant/nil.rb
55
- - lib/sass/plugin.rb
56
- - lib/sass/css.rb
57
- - lib/sass/engine.rb
58
58
  - lib/haml
59
+ - lib/haml/filters.rb
59
60
  - lib/haml/exec.rb
60
- - lib/haml/html.rb
61
61
  - lib/haml/error.rb
62
- - lib/haml/buffer.rb
63
62
  - lib/haml/template.rb
63
+ - lib/haml/engine.rb
64
64
  - lib/haml/template
65
- - lib/haml/template/plugin.rb
66
65
  - lib/haml/template/patch.rb
66
+ - lib/haml/template/plugin.rb
67
67
  - lib/haml/helpers.rb
68
- - lib/haml/filters.rb
69
- - lib/haml/engine.rb
68
+ - lib/haml/buffer.rb
69
+ - lib/haml/html.rb
70
70
  - lib/haml/precompiler.rb
71
+ - lib/haml/util.rb
71
72
  - lib/haml/helpers
72
- - lib/haml/helpers/action_view_extensions.rb
73
73
  - lib/haml/helpers/action_view_mods.rb
74
+ - lib/haml/helpers/action_view_extensions.rb
74
75
  - lib/haml.rb
75
- - bin/css2sass
76
76
  - bin/sass
77
- - bin/haml
77
+ - bin/css2sass
78
78
  - bin/html2haml
79
+ - bin/haml
80
+ - test/linked_rails.rb
81
+ - test/benchmark.rb
79
82
  - test/sass
83
+ - test/sass/results
84
+ - test/sass/results/constants.css
85
+ - test/sass/results/parent_ref.css
86
+ - test/sass/results/compressed.css
87
+ - test/sass/results/complex.css
88
+ - test/sass/results/compact.css
89
+ - test/sass/results/mixins.css
90
+ - test/sass/results/alt.css
91
+ - test/sass/results/subdir
92
+ - test/sass/results/subdir/subdir.css
93
+ - test/sass/results/subdir/nested_subdir
94
+ - test/sass/results/subdir/nested_subdir/nested_subdir.css
95
+ - test/sass/results/nested.css
96
+ - test/sass/results/import.css
97
+ - test/sass/results/multiline.css
98
+ - test/sass/results/basic.css
99
+ - test/sass/results/expanded.css
80
100
  - test/sass/templates
81
- - test/sass/templates/bork2.sass
101
+ - test/sass/templates/basic.sass
102
+ - test/sass/templates/bork.sass
82
103
  - test/sass/templates/compressed.sass
83
- - test/sass/templates/expanded.sass
84
104
  - test/sass/templates/import.sass
105
+ - test/sass/templates/constants.sass
106
+ - test/sass/templates/expanded.sass
107
+ - test/sass/templates/nested.sass
108
+ - test/sass/templates/_partial.sass
109
+ - test/sass/templates/compact.sass
85
110
  - test/sass/templates/subdir
86
111
  - test/sass/templates/subdir/subdir.sass
87
112
  - test/sass/templates/subdir/nested_subdir
88
113
  - test/sass/templates/subdir/nested_subdir/nested_subdir.sass
89
- - test/sass/templates/basic.sass
90
- - test/sass/templates/_partial.sass
91
- - test/sass/templates/mixins.sass
92
- - test/sass/templates/multiline.sass
93
- - test/sass/templates/nested.sass
94
- - test/sass/templates/compact.sass
114
+ - test/sass/templates/parent_ref.sass
95
115
  - test/sass/templates/alt.sass
96
- - test/sass/templates/constants.sass
97
116
  - test/sass/templates/importee.sass
98
- - test/sass/templates/parent_ref.sass
99
- - test/sass/templates/bork.sass
117
+ - test/sass/templates/mixins.sass
118
+ - test/sass/templates/multiline.sass
100
119
  - test/sass/templates/complex.sass
101
- - test/sass/plugin_test.rb
102
- - test/sass/results
103
- - test/sass/results/nested.css
104
- - test/sass/results/subdir
105
- - test/sass/results/subdir/nested_subdir
106
- - test/sass/results/subdir/nested_subdir/nested_subdir.css
107
- - test/sass/results/subdir/subdir.css
108
- - test/sass/results/import.css
109
- - test/sass/results/compact.css
110
- - test/sass/results/expanded.css
111
- - test/sass/results/alt.css
112
- - test/sass/results/mixins.css
113
- - test/sass/results/complex.css
114
- - test/sass/results/constants.css
115
- - test/sass/results/compressed.css
116
- - test/sass/results/parent_ref.css
117
- - test/sass/results/multiline.css
118
- - test/sass/results/basic.css
120
+ - test/sass/templates/bork2.sass
119
121
  - test/sass/engine_test.rb
122
+ - test/sass/plugin_test.rb
120
123
  - test/haml
121
124
  - test/haml/mocks
122
125
  - test/haml/mocks/article.rb
123
- - test/haml/template_test.rb
124
- - test/haml/html2haml_test.rb
125
126
  - test/haml/rhtml
126
- - test/haml/rhtml/_av_partial_1.rhtml
127
+ - test/haml/rhtml/_av_partial_2.rhtml
127
128
  - test/haml/rhtml/standard.rhtml
129
+ - test/haml/rhtml/_av_partial_1.rhtml
128
130
  - test/haml/rhtml/action_view.rhtml
129
- - test/haml/rhtml/_av_partial_2.rhtml
131
+ - test/haml/html2haml_test.rb
132
+ - test/haml/template_test.rb
130
133
  - test/haml/helper_test.rb
131
- - test/haml/templates
132
- - test/haml/templates/list.haml
133
- - test/haml/templates/_text_area.haml
134
- - test/haml/templates/_partial.haml
135
- - test/haml/templates/nuke_outer_whitespace.haml
136
- - test/haml/templates/_av_partial_2.haml
137
- - test/haml/templates/partial_layout.haml
138
- - test/haml/templates/helpful.haml
139
- - test/haml/templates/just_stuff.haml
140
- - test/haml/templates/silent_script.haml
141
- - test/haml/templates/very_basic.haml
142
- - test/haml/templates/nuke_inner_whitespace.haml
143
- - test/haml/templates/eval_suppressed.haml
144
- - test/haml/templates/tag_parsing.haml
145
- - test/haml/templates/whitespace_handling.haml
146
- - test/haml/templates/partials.haml
147
- - test/haml/templates/standard.haml
148
- - test/haml/templates/partialize.haml
149
- - test/haml/templates/_layout_for_partial.haml
150
- - test/haml/templates/_av_partial_1.haml
151
- - test/haml/templates/filters.haml
152
- - test/haml/templates/content_for_layout.haml
153
- - test/haml/templates/helpers.haml
154
- - test/haml/templates/original_engine.haml
155
- - test/haml/templates/breakage.haml
156
- - test/haml/templates/action_view.haml
157
134
  - test/haml/results
135
+ - test/haml/results/tag_parsing.xhtml
158
136
  - test/haml/results/content_for_layout.xhtml
159
- - test/haml/results/just_stuff.xhtml
137
+ - test/haml/results/helpers.xhtml
138
+ - test/haml/results/original_engine.xhtml
139
+ - test/haml/results/very_basic.xhtml
140
+ - test/haml/results/helpful.xhtml
141
+ - test/haml/results/list.xhtml
142
+ - test/haml/results/partials.xhtml
143
+ - test/haml/results/eval_suppressed.xhtml
144
+ - test/haml/results/nuke_inner_whitespace.xhtml
160
145
  - test/haml/results/whitespace_handling.xhtml
161
- - test/haml/results/nuke_outer_whitespace.xhtml
162
146
  - test/haml/results/silent_script.xhtml
163
- - test/haml/results/filters.xhtml
164
147
  - test/haml/results/standard.xhtml
165
- - test/haml/results/nuke_inner_whitespace.xhtml
166
- - test/haml/results/helpful.xhtml
167
- - test/haml/results/very_basic.xhtml
168
- - test/haml/results/eval_suppressed.xhtml
169
- - test/haml/results/partials.xhtml
170
- - test/haml/results/original_engine.xhtml
171
- - test/haml/results/helpers.xhtml
172
- - test/haml/results/list.xhtml
148
+ - test/haml/results/just_stuff.xhtml
173
149
  - test/haml/results/partial_layout.xhtml
174
- - test/haml/results/tag_parsing.xhtml
150
+ - test/haml/results/filters.xhtml
151
+ - test/haml/results/nuke_outer_whitespace.xhtml
175
152
  - test/haml/markaby
176
153
  - test/haml/markaby/standard.mab
154
+ - test/haml/templates
155
+ - test/haml/templates/tag_parsing.haml
156
+ - test/haml/templates/nuke_inner_whitespace.haml
157
+ - test/haml/templates/partial_layout.haml
158
+ - test/haml/templates/_av_partial_2_ugly.haml
159
+ - test/haml/templates/partials.haml
160
+ - test/haml/templates/_layout_for_partial.haml
161
+ - test/haml/templates/original_engine.haml
162
+ - test/haml/templates/helpers.haml
163
+ - test/haml/templates/action_view_ugly.haml
164
+ - test/haml/templates/content_for_layout.haml
165
+ - test/haml/templates/silent_script.haml
166
+ - test/haml/templates/very_basic.haml
167
+ - test/haml/templates/filters.haml
168
+ - test/haml/templates/_av_partial_1.haml
169
+ - test/haml/templates/standard_ugly.haml
170
+ - test/haml/templates/_partial.haml
171
+ - test/haml/templates/nuke_outer_whitespace.haml
172
+ - test/haml/templates/breakage.haml
173
+ - test/haml/templates/list.haml
174
+ - test/haml/templates/standard.haml
175
+ - test/haml/templates/whitespace_handling.haml
176
+ - test/haml/templates/eval_suppressed.haml
177
+ - test/haml/templates/action_view.haml
178
+ - test/haml/templates/_av_partial_2.haml
179
+ - test/haml/templates/partialize.haml
180
+ - test/haml/templates/just_stuff.haml
181
+ - test/haml/templates/helpful.haml
182
+ - test/haml/templates/_av_partial_1_ugly.haml
183
+ - test/haml/templates/_text_area.haml
177
184
  - test/haml/engine_test.rb
178
- - test/linked_rails.rb
179
- - test/rails
180
- - test/benchmark.rb
181
185
  - test/test_helper.rb
186
+ - test/rails
182
187
  - Rakefile
183
188
  - init.rb
184
- - VERSION
189
+ - FAQ
185
190
  - MIT-LICENSE
191
+ - VERSION
186
192
  - README.rdoc
187
- - FAQ
188
193
  - REVISION
189
194
  has_rdoc: true
190
195
  homepage: http://haml.hamptoncatlin.com/
@@ -215,14 +220,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
215
220
  requirements: []
216
221
 
217
222
  rubyforge_project: haml
218
- rubygems_version: 1.3.0
223
+ rubygems_version: 1.3.1
219
224
  signing_key:
220
225
  specification_version: 2
221
226
  summary: An elegant, structured XHTML/XML templating engine. Comes with Sass, a similar CSS templating engine.
222
227
  test_files:
223
- - test/sass/plugin_test.rb
224
228
  - test/sass/engine_test.rb
225
- - test/haml/template_test.rb
229
+ - test/sass/plugin_test.rb
226
230
  - test/haml/html2haml_test.rb
231
+ - test/haml/template_test.rb
227
232
  - test/haml/helper_test.rb
228
233
  - test/haml/engine_test.rb