haml-edge 2.3.43 → 2.3.44

Sign up to get free protection for your applications and to get access to all the features.
data/EDGE_GEM_VERSION CHANGED
@@ -1 +1 @@
1
- 2.3.43
1
+ 2.3.44
data/Rakefile CHANGED
@@ -90,6 +90,11 @@ task :release_elpa do
90
90
  next if haml_unchanged && sass_unchanged
91
91
  raise "haml-mode.el and sass-mode.el are out of sync." if haml_unchanged ^ sass_unchanged
92
92
 
93
+ if sass_unchanged && File.read("extra/sass-mode.el").
94
+ include?(";; Package-Requires: ((haml-mode #{sass_unchanged.inspect}))")
95
+ raise "sass-mode.el doesn't require the same version of haml-mode."
96
+ end
97
+
93
98
  rev = File.read('.git/HEAD').strip
94
99
  if rev =~ /^ref: (.*)$/
95
100
  rev = File.read(".git/#{$1}").strip
@@ -151,10 +156,11 @@ end
151
156
  #
152
157
  # @param mode [String, Symbol] The name of the mode
153
158
  # @param version [String] The version number
159
+ # @return [String, nil] The version number if the version has changed
154
160
  def mode_unchanged?(mode, version)
155
161
  mode_version = File.read("extra/#{mode}-mode.el").scan(/^;; Version: (.*)$/).first.first
156
162
  return false if mode_version == version
157
- return true unless changed_since?(mode_version, "extra/#{mode}-mode.el")
163
+ return mode_version unless changed_since?(mode_version, "extra/#{mode}-mode.el")
158
164
  raise "#{mode}-mode.el version is #{version.inspect}, but it has changed as of #{version.inspect}"
159
165
  return false
160
166
  end
@@ -242,8 +248,12 @@ task :pages do
242
248
  sh %{git checkout #{proj}-pages}
243
249
  sh %{git reset --hard origin/#{proj}-pages}
244
250
 
251
+ Dir.chdir("/var/www/#{proj}-pages")
252
+ sh %{git fetch origin}
253
+ sh %{git reset --hard origin/#{proj}-pages}
245
254
  sh %{rake build --trace}
246
- sh %{rsync -av --delete site/ /var/www/#{proj}-pages}
255
+ sh %{mkdir -p tmp}
256
+ sh %{touch tmp/restart.txt}
247
257
  end
248
258
  end
249
259
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.3.43
1
+ 2.3.44
data/extra/haml-mode.el CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ;; Author: Nathan Weizenbaum
6
6
  ;; URL: http://github.com/nex3/haml/tree/master
7
- ;; Version: 2.2.6
7
+ ;; Version: 2.2.7
8
8
  ;; Created: 2007-03-08
9
9
  ;; By: Nathan Weizenbaum
10
10
  ;; Keywords: markup, language, html
data/extra/sass-mode.el CHANGED
@@ -4,10 +4,11 @@
4
4
 
5
5
  ;; Author: Nathan Weizenbaum
6
6
  ;; URL: http://github.com/nex3/haml/tree/master
7
- ;; Version: 2.2.6
7
+ ;; Version: 2.2.7
8
8
  ;; Created: 2007-03-15
9
9
  ;; By: Nathan Weizenbaum
10
10
  ;; Keywords: markup, language, css
11
+ ;; Package-Requires: ((haml-mode "2.2.7"))
11
12
 
12
13
  ;;; Commentary:
13
14
 
data/lib/haml/engine.rb CHANGED
@@ -72,9 +72,10 @@ module Haml
72
72
  :suppress_eval => false,
73
73
  :attr_wrapper => "'",
74
74
 
75
- # Don't forget to update the docs in lib/haml.rb if you update these
75
+ # Don't forget to update the docs in doc-src/HAML_REFERENCE.md
76
+ # if you update these
76
77
  :autoclose => %w[meta img link br hr input area param col base],
77
- :preserve => %w[textarea pre],
78
+ :preserve => %w[textarea pre code],
78
79
 
79
80
  :filename => '(haml)',
80
81
  :line => 1,
data/lib/haml/html.rb CHANGED
@@ -25,6 +25,7 @@ module Haml
25
25
 
26
26
  def parse_text(text, tabs)
27
27
  text.strip!
28
+ text.gsub!('#{', '\#{') #'
28
29
  if text.empty?
29
30
  String.new
30
31
  else
@@ -202,7 +203,7 @@ module Haml
202
203
  full_match = nil
203
204
  ruby_value = value.gsub(%r{<haml:loud>\s*(.+?)\s*</haml:loud>}) do
204
205
  full_match = $`.empty? && $'.empty?
205
- full_match ? $1: "\#{#{$1}}"
206
+ CGI.unescapeHTML(full_match ? $1: "\#{#{$1}}")
206
207
  end
207
208
  next if ruby_value == value
208
209
  [name, full_match ? ruby_value : %("#{ruby_value}")]
@@ -186,7 +186,7 @@ END
186
186
  return unless line.tabs <= @template_tabs && @template_tabs > 0
187
187
 
188
188
  to_close = @template_tabs - line.tabs
189
- to_close.times { |i| close unless to_close - 1 - i == 0 && mid_block_keyword?(line.text) }
189
+ to_close.times {|i| close unless to_close - 1 - i == 0 && mid_block_keyword?(line.text)}
190
190
  end
191
191
 
192
192
  # Processes a single line of Haml.
@@ -228,12 +228,27 @@ END
228
228
  newline_now
229
229
 
230
230
  # Handle stuff like - end.join("|")
231
- @to_close_stack.first << false if text =~ /^-\s*end\b/ && !block_opened?
231
+ @to_close_stack.last << false if text =~ /^-\s*end\b/ && !block_opened?
232
232
 
233
233
  case_stmt = text =~ /^-\s*case\b/
234
- block = block_opened? && !mid_block_keyword?(text)
235
- push_and_tabulate([:script]) if block || case_stmt
236
- push_and_tabulate(:nil) if block && case_stmt
234
+ keyword = mid_block_keyword?(text)
235
+ block = block_opened? && !keyword
236
+
237
+ # It's important to preserve tabulation modification for keywords
238
+ # that involve choosing between posible blocks of code.
239
+ if %w[else elsif when].include?(keyword)
240
+ @dont_indent_next_line, @dont_tab_up_next_text = @to_close_stack.last[1..2]
241
+
242
+ # when is unusual in that either it will be indented twice,
243
+ # or the case won't have created its own indentation
244
+ if keyword == "when"
245
+ push_and_tabulate([:script, @dont_indent_next_line, @dont_tab_up_next_text, false])
246
+ end
247
+ elsif block || case_stmt
248
+ push_and_tabulate([:script, @dont_indent_next_line, @dont_tab_up_next_text])
249
+ elsif block && case_stmt
250
+ push_and_tabulate([:script, @dont_indent_next_line, @dont_tab_up_next_text])
251
+ end
237
252
  when FILTER; start_filtered(text[1..-1].downcase)
238
253
  when DOCTYPE
239
254
  return render_doctype(text) if text[0...3] == '!!!'
@@ -247,10 +262,11 @@ END
247
262
  end
248
263
  end
249
264
 
250
- # Returns whether or not the text is a silent script text with one
251
- # of Ruby's mid-block keywords.
265
+ # If the text is a silent script text with one of Ruby's mid-block keywords,
266
+ # returns the name of that keyword.
267
+ # Otherwise, returns nil.
252
268
  def mid_block_keyword?(text)
253
- MID_BLOCK_KEYWORD_REGEX =~ text
269
+ text[MID_BLOCK_KEYWORD_REGEX, 1]
254
270
  end
255
271
 
256
272
  # Evaluates <tt>text</tt> in the context of the scope object, but
@@ -398,7 +414,7 @@ END
398
414
  end
399
415
 
400
416
  # Closes a Ruby block.
401
- def close_script(push_end = true)
417
+ def close_script(_1, _2, push_end = true)
402
418
  push_silent("end", true) if push_end
403
419
  @template_tabs -= 1
404
420
  end
@@ -433,7 +449,7 @@ END
433
449
  @template_tabs -= 1
434
450
  end
435
451
 
436
- def close_nil
452
+ def close_nil(*args)
437
453
  @template_tabs -= 1
438
454
  end
439
455
 
@@ -232,6 +232,19 @@ HAML
232
232
  SOURCE
233
233
  end
234
234
 
235
+ def test_pre_code
236
+ assert_equal(<<HTML, render(<<HAML))
237
+ <pre><code>Foo&#x000A; bar&#x000A; baz</code></pre>
238
+ HTML
239
+ %pre
240
+ %code
241
+ :preserve
242
+ Foo
243
+ bar
244
+ baz
245
+ HAML
246
+ end
247
+
235
248
  def test_boolean_attributes
236
249
  assert_equal("<p bar baz='true' foo='bar'></p>\n",
237
250
  render("%p{:foo => 'bar', :bar => true, :baz => 'true'}", :format => :html4))
@@ -268,6 +281,36 @@ HTML
268
281
  HAML
269
282
  end
270
283
 
284
+ def test_whitespace_nuke_with_tags_and_else
285
+ assert_equal(<<HTML, render(<<HAML))
286
+ <a>
287
+ <b>foo</b>
288
+ </a>
289
+ HTML
290
+ %a
291
+ %b<
292
+ - if false
293
+ = "foo"
294
+ - else
295
+ foo
296
+ HAML
297
+
298
+ assert_equal(<<HTML, render(<<HAML))
299
+ <a>
300
+ <b>
301
+ foo
302
+ </b>
303
+ </a>
304
+ HTML
305
+ %a
306
+ %b
307
+ - if false
308
+ = "foo"
309
+ - else
310
+ foo
311
+ HAML
312
+ end
313
+
271
314
  def test_both_case_indentation_work_with_deeply_nested_code
272
315
  result = <<RESULT
273
316
  <h2>
@@ -334,6 +377,24 @@ HTML
334
377
  HAML
335
378
  end
336
379
 
380
+ def test_nested_end_with_method_call
381
+ assert_equal(<<HTML, render(<<HAML))
382
+ <p>
383
+ 2|3|4
384
+ b-a-r
385
+ </p>
386
+ HTML
387
+ %p
388
+ = [1, 2, 3].map do |i|
389
+ - i + 1
390
+ - end.join("|")
391
+ = "bar".gsub(/./) do |s|
392
+ - s + "-"
393
+ - end.gsub(/-$/) do |s|
394
+ - ''
395
+ HAML
396
+ end
397
+
337
398
  def test_silent_end_with_stuff
338
399
  assert_equal(<<HTML, render(<<HAML))
339
400
  e
@@ -32,6 +32,14 @@ class Html2HamlTest < Test::Unit::TestCase
32
32
  assert_equal "/\n IE sucks", render('<!-- IE sucks -->')
33
33
  end
34
34
 
35
+ def test_interpolation
36
+ assert_equal('Foo \#{bar} baz', render('Foo #{bar} baz'))
37
+ end
38
+
39
+ def test_interpolation_in_attrs
40
+ assert_equal('%p{ :foo => "\#{bar} baz" }', render('<p foo="#{bar} baz"></p>'))
41
+ end
42
+
35
43
  def test_rhtml
36
44
  assert_equal '- foo = bar', render_rhtml('<% foo = bar %>')
37
45
  assert_equal '- foo = bar', render_rhtml('<% foo = bar -%>')
@@ -64,6 +72,11 @@ class Html2HamlTest < Test::Unit::TestCase
64
72
  render_rhtml(%Q{<div class="<%= 12 %>!">Bang!</div>})
65
73
  end
66
74
 
75
+ def test_rhtml_in_html_escaped_attribute
76
+ assert_equal %(%div{ :class => "foo" }\n Bang!),
77
+ render_rhtml(%Q{<div class="<%= "foo" %>">Bang!</div>})
78
+ end
79
+
67
80
  def test_rhtml_in_attribute_to_multiple_interpolations
68
81
  assert_equal %(%div{ :class => "\#{12} + \#{13}" }\n Math is super),
69
82
  render_rhtml(%Q{<div class="<%= 12 %> + <%= 13 %>">Math is super</div>})
@@ -90,6 +103,15 @@ HAML
90
103
  HTML
91
104
  end
92
105
 
106
+ def test_interpolation_in_rhtml
107
+ assert_equal('= "Foo #{bar} baz"', render_rhtml('<%= "Foo #{bar} baz" %>'))
108
+ end
109
+
110
+ def test_interpolation_in_rhtml_attrs
111
+ assert_equal('%p{ :foo => "#{bar} baz" }',
112
+ render_rhtml('<p foo="<%= "#{bar} baz" %>"></p>'))
113
+ end
114
+
93
115
  # Encodings
94
116
 
95
117
  unless Haml::Util.ruby1_8?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haml-edge
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.43
4
+ version: 2.3.44
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: 2009-09-28 00:00:00 -04:00
13
+ date: 2009-10-09 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -44,11 +44,11 @@ extensions: []
44
44
 
45
45
  extra_rdoc_files:
46
46
  - README.md
47
+ - REVISION
47
48
  - VERSION
49
+ - VERSION_NAME
48
50
  - CONTRIBUTING
49
51
  - MIT-LICENSE
50
- - VERSION_NAME
51
- - REVISION
52
52
  - EDGE_GEM_VERSION
53
53
  files:
54
54
  - rails/init.rb
@@ -257,11 +257,11 @@ files:
257
257
  - init.rb
258
258
  - .yardopts
259
259
  - README.md
260
+ - REVISION
260
261
  - VERSION
262
+ - VERSION_NAME
261
263
  - CONTRIBUTING
262
264
  - MIT-LICENSE
263
- - VERSION_NAME
264
- - REVISION
265
265
  - EDGE_GEM_VERSION
266
266
  has_rdoc: true
267
267
  homepage: http://haml.hamptoncatlin.com/