haml 3.2.0.alpha.2 → 3.2.0.alpha.3

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/REVISION CHANGED
@@ -1 +1 @@
1
- 5f04bbda570a41acfb1d5d8ac971ae99c1ae7046
1
+ 881d7e66546964138bcc0458302d97b62e6e703a
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.2.0.alpha.2
1
+ 3.2.0.alpha.3
@@ -51,7 +51,10 @@ module ActionView
51
51
  # We've got to do the same thing for compatibility.
52
52
 
53
53
  if is_haml? && block_is_haml?(block)
54
- capture_haml(*args, &block)
54
+ value = nil
55
+ buffer = capture_haml(*args) { value = yield(*args) }
56
+ return buffer unless buffer.empty?
57
+ return value if value.is_a?(String)
55
58
  else
56
59
  capture_without_haml(*args, &block)
57
60
  end
@@ -85,7 +88,16 @@ module ActionView
85
88
  module CaptureHelper
86
89
  def capture_with_haml(*args, &block)
87
90
  if Haml::Helpers.block_is_haml?(block)
88
- str = capture_haml(*args, &block)
91
+ value = nil
92
+ buffer = capture_haml(*args) { value = yield(*args) }
93
+ str =
94
+ if !buffer.empty?
95
+ buffer
96
+ elsif value.is_a?(String)
97
+ value
98
+ else
99
+ ''
100
+ end
89
101
  return ActionView::NonConcattingString.new(str) if defined?(ActionView::NonConcattingString)
90
102
  return str
91
103
  else
@@ -146,7 +146,7 @@ END
146
146
 
147
147
  @tab_up = nil
148
148
  process_line(@line.text, @line.index) unless @line.text.empty? || @haml_comment
149
- if block_opened? || @tab_up
149
+ if @parent.type != :haml_comment && (block_opened? || @tab_up)
150
150
  @template_tabs += 1
151
151
  @parent = @parent.children.last
152
152
  end
@@ -382,6 +382,20 @@ SOURCE
382
382
  assert_equal("<p foo='bar'></p>\n", render('%p{:foo => "bar"}', :attr_wrapper => nil))
383
383
  end
384
384
 
385
+ def test_comment_with_crazy_nesting
386
+ assert_equal(<<HTML, render(<<HAML))
387
+ foo
388
+ bar
389
+ HTML
390
+ foo
391
+ -#
392
+ ul
393
+ %li{
394
+ foo
395
+ bar
396
+ HAML
397
+ end
398
+
385
399
  # Regression tests
386
400
 
387
401
  def test_whitespace_nuke_with_both_newlines
@@ -357,6 +357,10 @@ HAML
357
357
  assert_equal("1\n\n2\n\n3\n\n", render("- trc([1, 2, 3]) do |i|\n = i.inspect"))
358
358
  end
359
359
 
360
+ def test_capture_with_string_block
361
+ assert_equal("foo\n", render("= capture { 'foo' }", :action_view))
362
+ end
363
+
360
364
  def test_find_and_preserve_with_block
361
365
  assert_equal("<pre>Foo&#x000A;Bar</pre>\nFoo\nBar\n",
362
366
  render("= find_and_preserve do\n %pre\n Foo\n Bar\n Foo\n Bar"))
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: 3.2.0.alpha.2
4
+ version: 3.2.0.alpha.3
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: 2011-04-25 00:00:00 -04:00
13
+ date: 2011-05-10 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency