haml 2.2.20 → 2.2.21

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/.yardopts CHANGED
@@ -2,6 +2,7 @@
2
2
  --markup markdown
3
3
  --markup-provider maruku
4
4
  --default-return ""
5
+ --title "Haml/Sass Documentation"
5
6
  --hide-void-return
6
7
  --protected
7
8
  --no-private
@@ -0,0 +1,6 @@
1
+ Deprecate .foo& in stable
2
+ Make .#{} work in extend
3
+ Test newly-invalid selectors, including post-resolution parse errors in Sass
4
+ Be smart about default namespaces (http://www.w3.org/TR/css3-namespace/#declaration)
5
+ Don't conflict with Object#extend.
6
+ http://camendesign.com/design/ provides some interesting formatting and nesting issues for sass-convert
data/Rakefile CHANGED
@@ -1,6 +1,12 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
3
 
4
+ # ----- Utility Functions -----
5
+
6
+ def scope(path)
7
+ File.join(File.dirname(__FILE__), path)
8
+ end
9
+
4
10
  # ----- Benchmarking -----
5
11
 
6
12
  desc <<END
@@ -23,10 +29,10 @@ require 'rake/testtask'
23
29
 
24
30
  Rake::TestTask.new do |t|
25
31
  t.libs << 'lib'
26
- test_files = FileList['test/**/*_test.rb']
27
- test_files.exclude('test/rails/*')
28
- test_files.exclude('test/plugins/*')
29
- test_files.exclude('test/haml/spec/*')
32
+ test_files = FileList[scope('test/**/*_test.rb')]
33
+ test_files.exclude(scope('test/rails/*'))
34
+ test_files.exclude(scope('test/plugins/*'))
35
+ test_files.exclude(scope('test/haml/spec/*'))
30
36
  t.test_files = test_files
31
37
  t.verbose = true
32
38
  end
@@ -37,7 +43,7 @@ END
37
43
  # ----- Packaging -----
38
44
 
39
45
  require 'rake/gempackagetask'
40
- load 'haml.gemspec'
46
+ load scope('haml.gemspec')
41
47
 
42
48
  Rake::GemPackageTask.new(HAML_GEMSPEC) do |pkg|
43
49
  if Rake.application.top_level_tasks.include?('release')
@@ -50,31 +56,31 @@ end
50
56
  task :revision_file do
51
57
  require 'lib/haml'
52
58
 
53
- release = Rake.application.top_level_tasks.include?('release') || File.exist?('EDGE_GEM_VERSION')
59
+ release = Rake.application.top_level_tasks.include?('release') || File.exist?(scope('EDGE_GEM_VERSION'))
54
60
  if Haml.version[:rev] && !release
55
- File.open('REVISION', 'w') { |f| f.puts Haml.version[:rev] }
61
+ File.open(scope('REVISION'), 'w') { |f| f.puts Haml.version[:rev] }
56
62
  elsif release
57
- File.open('REVISION', 'w') { |f| f.puts "(release)" }
63
+ File.open(scope('REVISION'), 'w') { |f| f.puts "(release)" }
58
64
  else
59
- File.open('REVISION', 'w') { |f| f.puts "(unknown)" }
65
+ File.open(scope('REVISION'), 'w') { |f| f.puts "(unknown)" }
60
66
  end
61
67
  end
62
68
  Rake::Task[:package].prerequisites.insert(0, :revision_file)
63
69
 
64
70
  # We also need to get rid of this file after packaging.
65
- at_exit { File.delete('REVISION') rescue nil }
71
+ at_exit { File.delete(scope('REVISION')) rescue nil }
66
72
 
67
73
  desc "Install Haml as a gem."
68
74
  task :install => [:package] do
69
75
  sudo = RUBY_PLATFORM =~ /win32/ ? '' : 'sudo'
70
76
  gem = RUBY_PLATFORM =~ /java/ ? 'jgem' : 'gem'
71
- sh %{#{sudo} #{gem} install --no-ri pkg/haml-#{File.read('VERSION').strip}}
77
+ sh %{#{sudo} #{gem} install --no-ri pkg/haml-#{File.read(scope('VERSION')).strip}}
72
78
  end
73
79
 
74
80
  desc "Release a new Haml package to Rubyforge."
75
- task :release => [:check_release, :release_elpa, :package] do
76
- name = File.read("VERSION_NAME").strip
77
- version = File.read("VERSION").strip
81
+ task :release => [:check_release, :package] do
82
+ name = File.read(scope("VERSION_NAME")).strip
83
+ version = File.read(scope("VERSION")).strip
78
84
  sh %{rubyforge add_release haml haml "#{name} (v#{version})" pkg/haml-#{version}.gem}
79
85
  sh %{rubyforge add_file haml haml "#{name} (v#{version})" pkg/haml-#{version}.tar.gz}
80
86
  sh %{rubyforge add_file haml haml "#{name} (v#{version})" pkg/haml-#{version}.tar.bz2}
@@ -86,24 +92,20 @@ end
86
92
  task :release_elpa do
87
93
  require 'tlsmail'
88
94
  require 'time'
95
+ require scope('lib/haml')
89
96
 
90
- version = File.read("VERSION").strip
97
+ version = Haml.version[:number]
91
98
 
92
99
  haml_unchanged = mode_unchanged?(:haml, version)
93
100
  sass_unchanged = mode_unchanged?(:sass, version)
94
101
  next if haml_unchanged && sass_unchanged
95
102
  raise "haml-mode.el and sass-mode.el are out of sync." if haml_unchanged ^ sass_unchanged
96
103
 
97
- if sass_unchanged && File.read("extra/sass-mode.el").
104
+ if sass_unchanged && File.read(scope("extra/sass-mode.el")).
98
105
  include?(";; Package-Requires: ((haml-mode #{sass_unchanged.inspect}))")
99
106
  raise "sass-mode.el doesn't require the same version of haml-mode."
100
107
  end
101
108
 
102
- rev = File.read('.git/HEAD').strip
103
- if rev =~ /^ref: (.*)$/
104
- rev = File.read(".git/#{$1}").strip
105
- end
106
-
107
109
  from = `git config user.email`.strip
108
110
  raise "Don't know how to send emails except via Gmail" unless from =~ /@gmail.com$/
109
111
 
@@ -119,17 +121,17 @@ Date: #{Time.now.rfc2822}
119
121
  haml-mode and sass-mode #{version} are packaged and ready to be included in ELPA.
120
122
  They can be downloaded from:
121
123
 
122
- http://github.com/nex3/haml/raw/#{rev}/extra/haml-mode.el
123
- http://github.com/nex3/haml/raw/#{rev}/extra/sass-mode.el
124
+ http://github.com/nex3/haml/raw/#{Haml.version[:rev]}/extra/haml-mode.el
125
+ http://github.com/nex3/haml/raw/#{Haml.version[:rev]}/extra/sass-mode.el
124
126
  CONTENT
125
127
  end
126
128
  end
127
129
 
128
130
  # Ensures that the version have been updated for a new release.
129
131
  task :check_release do
130
- version = File.read("VERSION").strip
131
- raise "There have been changes since current version (#{version})" if changed_since?(version)
132
- raise "VERSION_NAME must not be 'Bleeding Edge'" if File.read("VERSION_NAME") == "Bleeding Edge"
132
+ version = File.read(scope("VERSION")).strip
133
+ #raise "There have been changes since current version (#{version})" if changed_since?(version)
134
+ raise "VERSION_NAME must not be 'Bleeding Edge'" if File.read(scope("VERSION_NAME")) == "Bleeding Edge"
133
135
  end
134
136
 
135
137
  # Reads a password from the command line.
@@ -162,7 +164,7 @@ end
162
164
  # @param version [String] The version number
163
165
  # @return [String, nil] The version number if the version has changed
164
166
  def mode_unchanged?(mode, version)
165
- mode_version = File.read("extra/#{mode}-mode.el").scan(/^;; Version: (.*)$/).first.first
167
+ mode_version = File.read(scope("extra/#{mode}-mode.el")).scan(/^;; Version: (.*)$/).first.first
166
168
  return false if mode_version == version
167
169
  return mode_version unless changed_since?(mode_version, "extra/#{mode}-mode.el")
168
170
  raise "#{mode}-mode.el version is #{version.inspect}, but it has changed as of #{version.inspect}"
@@ -178,13 +180,13 @@ task :release_edge do
178
180
  sh %{git merge origin/master}
179
181
 
180
182
  # Get the current master branch version
181
- version = File.read('VERSION').strip.split('.').map {|n| n.to_i}
183
+ version = File.read(scope('VERSION')).strip.split('.').map {|n| n.to_i}
182
184
  unless version[1] % 2 == 1 && version[2] == 0
183
185
  raise "#{version.join('.')} is not a development version"
184
186
  end
185
187
 
186
188
  # Bump the edge gem version
187
- edge_version = File.read('EDGE_GEM_VERSION').strip.split('.').map {|n| n.to_i}
189
+ edge_version = File.read(scope('EDGE_GEM_VERSION')).strip.split('.').map {|n| n.to_i}
188
190
  if edge_version[0..1] != version[0..1]
189
191
  # A new master branch version was released, reset the edge gem version
190
192
  edge_version[0..1] = version[0..1]
@@ -194,12 +196,12 @@ task :release_edge do
194
196
  edge_version[2] += 1
195
197
  end
196
198
  edge_version = edge_version.join('.')
197
- File.open('EDGE_GEM_VERSION', 'w') {|f| f.puts(edge_version)}
199
+ File.open(scope('EDGE_GEM_VERSION'), 'w') {|f| f.puts(edge_version)}
198
200
  sh %{git commit -m "Bump edge gem version to #{edge_version}." EDGE_GEM_VERSION}
199
201
  sh %{git push origin edge-gem}
200
202
 
201
203
  # Package the edge gem with the proper version
202
- File.open('VERSION', 'w') {|f| f.puts(edge_version)}
204
+ File.open(scope('VERSION'), 'w') {|f| f.puts(edge_version)}
203
205
  sh %{rake package}
204
206
  sh %{git checkout VERSION}
205
207
 
@@ -226,8 +228,8 @@ begin
226
228
 
227
229
  namespace :yard do
228
230
  task :sass do
229
- require File.dirname(__FILE__) + '/lib/sass'
230
- Dir[File.dirname(__FILE__) + "/yard/default/**/*.sass"].each do |sass|
231
+ require scope('lib/sass')
232
+ Dir[scope("yard/default/**/*.sass")].each do |sass|
231
233
  File.open(sass.gsub(/sass$/, 'css'), 'w') do |f|
232
234
  f.write(Sass::Engine.new(File.read(sass)).render)
233
235
  end
@@ -236,15 +238,16 @@ begin
236
238
  end
237
239
 
238
240
  YARD::Rake::YardocTask.new do |t|
239
- t.files = FileList.new('lib/**/*.rb') do |list|
241
+ t.files = FileList.new(scope('lib/**/*.rb')) do |list|
240
242
  list.exclude('lib/haml/template/*.rb')
241
243
  list.exclude('lib/haml/helpers/action_view_mods.rb')
242
244
  end.to_a
243
245
  t.options << '--incremental' if Rake.application.top_level_tasks.include?('redoc')
244
- t.options += FileList.new('yard/*.rb').to_a.map {|f| ['-e', f]}.flatten
245
- files = FileList.new('doc-src/*').to_a.sort_by {|s| s.size} + %w[MIT-LICENSE VERSION]
246
+ t.options += FileList.new(scope('yard/*.rb')).to_a.map {|f| ['-e', f]}.flatten
247
+ files = FileList.new(scope('doc-src/*')).to_a.sort_by {|s| s.size} + %w[MIT-LICENSE VERSION]
246
248
  t.options << '--files' << files.join(',')
247
- t.options << '--template-path' << File.dirname(__FILE__) + '/yard'
249
+ t.options << '--template-path' << scope('yard')
250
+ t.options << '--title' << ENV["YARD_TITLE"] if ENV["YARD_TITLE"]
248
251
  end
249
252
  Rake::Task['yard'].prerequisites.insert(0, 'yard:sass')
250
253
  Rake::Task['yard'].instance_variable_set('@comment', nil)
@@ -276,7 +279,7 @@ begin
276
279
  require 'rcov/rcovtask'
277
280
 
278
281
  Rcov::RcovTask.new do |t|
279
- t.test_files = FileList['test/**/*_test.rb']
282
+ t.test_files = FileList[scope('test/**/*_test.rb')]
280
283
  t.rcov_opts << '-x' << '"^\/"'
281
284
  if ENV['NON_NATIVE']
282
285
  t.rcov_opts << "--no-rcovrt"
@@ -307,12 +310,12 @@ END
307
310
  if engine == 'sass'
308
311
  require 'lib/sass'
309
312
 
310
- file = File.read("#{File.dirname(__FILE__)}/test/sass/templates/#{file || 'complex'}.sass")
313
+ file = File.read(scope("test/sass/templates/#{file || 'complex'}.sass"))
311
314
  result = RubyProf.profile { times.times { Sass::Engine.new(file).render } }
312
315
  else
313
316
  require 'lib/haml'
314
317
 
315
- file = File.read("#{File.dirname(__FILE__)}/test/haml/templates/#{file || 'standard'}.haml")
318
+ file = File.read(scope("test/haml/templates/#{file || 'standard'}.haml"))
316
319
  obj = Object.new
317
320
  Haml::Engine.new(file).def_method(obj, :render)
318
321
  result = RubyProf.profile { times.times { obj.render } }
@@ -325,29 +328,36 @@ rescue LoadError; end
325
328
  # ----- Testing Multiple Rails Versions -----
326
329
 
327
330
  rails_versions = [
328
- "v2.3.4",
329
- "v2.2.2",
331
+ "v2.3.5",
332
+ "v2.2.3",
330
333
  "v2.1.2",
331
334
  ]
332
335
  rails_versions << "v2.0.5" if RUBY_VERSION =~ /^1\.8/
333
336
 
337
+ def test_rails_version(version)
338
+ Dir.chdir "test/rails" do
339
+ `git checkout #{version}`
340
+ end
341
+ puts "Testing Rails #{version}"
342
+ Rake::Task['test'].reenable
343
+ Rake::Task['test'].execute
344
+ end
345
+
334
346
  namespace :test do
335
347
  desc "Test all supported versions of rails. This takes a while."
336
348
  task :rails_compatibility do
337
349
  `rm -rf test/rails`
338
350
  puts "Checking out rails. Please wait."
339
- `git clone git://github.com/rails/rails.git test/rails` rescue nil
351
+ system("git clone git://github.com/rails/rails.git test/rails") rescue nil
340
352
  begin
341
- rails_versions.each do |version|
342
- Dir.chdir "test/rails" do
343
- `git checkout #{version}`
344
- end
345
- puts "Testing Rails #{version}"
346
- Rake::Task['test'].reenable
347
- Rake::Task['test'].execute
348
- end
353
+ rails_versions.each {|version| test_rails_version version}
354
+
355
+ puts "Checking out rails_xss. Please wait."
356
+ system("git clone git://github.com/NZKoz/rails_xss.git test/plugins/rails_xss")
357
+ test_rails_version(rails_versions.find {|s| s =~ /^v2\.3/})
349
358
  ensure
350
359
  `rm -rf test/rails`
360
+ `rm -rf test/plugins`
351
361
  end
352
362
  end
353
363
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.2.20
1
+ 2.2.21
@@ -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.20
7
+ ;; Version: 2.2.21
8
8
  ;; Created: 2007-03-08
9
9
  ;; By: Nathan Weizenbaum
10
10
  ;; Keywords: markup, language, html
@@ -30,6 +30,7 @@
30
30
  (require 'textile-mode nil t)
31
31
  (require 'markdown-mode nil t)
32
32
  (require 'javascript-mode "javascript" t)
33
+ (require 'js nil t)
33
34
 
34
35
 
35
36
  ;; User definable variables
@@ -172,13 +173,15 @@ This requires that `css-mode' is available.
172
173
  (defun haml-highlight-js-filter-block (limit)
173
174
  "If a :javascript filter is found within LIMIT, highlight it.
174
175
 
175
- This requires that Karl Landström's \"javascript.el\" be available."
176
- (if (boundp 'js-font-lock-keywords-3)
177
- (haml-fontify-filter-region "javascript"
178
- limit
179
- js-font-lock-keywords-3
180
- javascript-mode-syntax-table
181
- nil)))
176
+ This requires that Karl Landström's javascript mode be available, either as the
177
+ \"js.el\" bundled with Emacs 23, or as \"javascript.el\" found in ELPA and
178
+ elsewhere."
179
+ (let ((keywords (or (and (featurep 'js) js--font-lock-keywords-3)
180
+ (and (featurep 'javascript-mode) js-font-lock-keywords-3)))
181
+ (syntax-table (or (and (featurep 'js) js-mode-syntax-table)
182
+ (and (featurep 'javascript-mode) javascript-mode-syntax-table))))
183
+ (when keywords
184
+ (haml-fontify-filter-region "javascript" limit keywords syntax-table nil))))
182
185
 
183
186
  (defun haml-highlight-textile-filter-block (limit)
184
187
  "If a :textile filter is found within LIMIT, highlight it.
@@ -4,11 +4,11 @@
4
4
 
5
5
  ;; Author: Nathan Weizenbaum
6
6
  ;; URL: http://github.com/nex3/haml/tree/master
7
- ;; Version: 2.2.20
7
+ ;; Version: 2.2.21
8
8
  ;; Created: 2007-03-15
9
9
  ;; By: Nathan Weizenbaum
10
10
  ;; Keywords: markup, language, css
11
- ;; Package-Requires: ((haml-mode "2.2.20"))
11
+ ;; Package-Requires: ((haml-mode "2.2.21"))
12
12
 
13
13
  ;;; Commentary:
14
14
 
@@ -234,6 +234,33 @@ MESSAGE
234
234
  haml_buffer.tabulation -= i
235
235
  end
236
236
 
237
+ # Sets the number of tabs the buffer automatically adds
238
+ # to the lines of the template,
239
+ # but only for the duration of the block.
240
+ # For example:
241
+ #
242
+ # %h1 foo
243
+ # - with_tabs(2) do
244
+ # %p bar
245
+ # %strong baz
246
+ #
247
+ # Produces:
248
+ #
249
+ # <h1>foo</h1>
250
+ # <p>bar</p>
251
+ # <strong>baz</strong>
252
+ #
253
+ #
254
+ # @param i [Fixnum] The number of tabs to use
255
+ # @yield [] A block in which the indentation will be `i` spaces
256
+ def with_tabs(i)
257
+ old_tabs = haml_buffer.tabulation
258
+ haml_buffer.tabulation = i
259
+ yield
260
+ ensure
261
+ haml_buffer.tabulation = old_tabs
262
+ end
263
+
237
264
  # Surrounds a block of Haml code with strings,
238
265
  # with no whitespace in between.
239
266
  # For example:
@@ -131,48 +131,87 @@ module ActionView
131
131
  end
132
132
  end
133
133
 
134
- module FormTagHelper
135
- def form_tag_with_haml(url_for_options = {}, options = {}, *parameters_for_url, &proc)
136
- if is_haml?
137
- if block_given?
134
+ if Haml::Util.ap_geq_3?
135
+ module FormTagHelper
136
+ def form_tag_with_haml(url_for_options = {}, options = {}, *parameters_for_url, &proc)
137
+ if is_haml?
138
+ if block_given?
139
+ oldproc = proc
140
+ proc = haml_bind_proc do |*args|
141
+ concat "\n"
142
+ with_tabs(1) {oldproc.call(*args)}
143
+ end
144
+ end
145
+ res = form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc) + "\n"
146
+ res << "\n" if block_given?
147
+ res
148
+ else
149
+ form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc)
150
+ end
151
+ end
152
+ alias_method :form_tag_without_haml, :form_tag
153
+ alias_method :form_tag, :form_tag_with_haml
154
+ end
155
+
156
+ module FormHelper
157
+ def form_for_with_haml(object_name, *args, &proc)
158
+ if block_given? && is_haml?
138
159
  oldproc = proc
139
160
  proc = haml_bind_proc do |*args|
140
- concat "\n"
141
- tab_up
142
- oldproc.call(*args)
143
- tab_down
144
- concat haml_indent
161
+ with_tabs(1) {oldproc.call(*args)}
145
162
  end
146
- concat haml_indent
147
163
  end
148
- res = form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc) + "\n"
149
- concat "\n" if block_given?
164
+ res = form_for_without_haml(object_name, *args, &proc)
165
+ res << "\n" if block_given? && is_haml?
150
166
  res
151
- else
152
- form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc)
153
167
  end
168
+ alias_method :form_for_without_haml, :form_for
169
+ alias_method :form_for, :form_for_with_haml
170
+ end
171
+ else
172
+ module FormTagHelper
173
+ def form_tag_with_haml(url_for_options = {}, options = {}, *parameters_for_url, &proc)
174
+ if is_haml?
175
+ if block_given?
176
+ oldproc = proc
177
+ proc = haml_bind_proc do |*args|
178
+ concat "\n"
179
+ tab_up
180
+ oldproc.call(*args)
181
+ tab_down
182
+ concat haml_indent
183
+ end
184
+ concat haml_indent
185
+ end
186
+ res = form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc) + "\n"
187
+ concat "\n" if block_given?
188
+ res
189
+ else
190
+ form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc)
191
+ end
192
+ end
193
+ alias_method :form_tag_without_haml, :form_tag
194
+ alias_method :form_tag, :form_tag_with_haml
154
195
  end
155
- alias_method :form_tag_without_haml, :form_tag
156
- alias_method :form_tag, :form_tag_with_haml
157
- end
158
196
 
159
- module FormHelper
160
- def form_for_with_haml(object_name, *args, &proc)
161
- if block_given? && is_haml?
162
- oldproc = proc
163
- proc = haml_bind_proc do |*args|
164
- tab_up
165
- oldproc.call(*args)
166
- tab_down
197
+ module FormHelper
198
+ def form_for_with_haml(object_name, *args, &proc)
199
+ if block_given? && is_haml?
200
+ oldproc = proc
201
+ proc = haml_bind_proc do |*args|
202
+ tab_up
203
+ oldproc.call(*args)
204
+ tab_down
205
+ concat haml_indent
206
+ end
167
207
  concat haml_indent
168
208
  end
169
- concat haml_indent
209
+ form_for_without_haml(object_name, *args, &proc)
210
+ concat "\n" if block_given? && is_haml?
170
211
  end
171
- form_for_without_haml(object_name, *args, &proc)
172
- concat "\n" if block_given? && is_haml?
212
+ alias_method :form_for_without_haml, :form_for
213
+ alias_method :form_for, :form_for_with_haml
173
214
  end
174
- alias_method :form_for_without_haml, :form_for
175
- alias_method :form_for, :form_for_with_haml
176
215
  end
177
216
  end
178
217
  end
@@ -97,6 +97,14 @@ end
97
97
 
98
98
  module ActionView
99
99
  module Helpers
100
+ module CaptureHelper
101
+ def with_output_buffer_with_haml_xss(*args, &block)
102
+ Haml::Util.html_safe(with_output_buffer_without_haml_xss(*args, &block))
103
+ end
104
+ alias_method :with_output_buffer_without_haml_xss, :with_output_buffer
105
+ alias_method :with_output_buffer, :with_output_buffer_with_haml_xss
106
+ end
107
+
100
108
  module FormTagHelper
101
109
  def form_tag_with_haml_xss(*args, &block)
102
110
  Haml::Util.html_safe(form_tag_without_haml_xss(*args, &block))
@@ -105,6 +113,14 @@ module ActionView
105
113
  alias_method :form_tag, :form_tag_with_haml_xss
106
114
  end
107
115
 
116
+ module FormHelper
117
+ def form_for_with_haml_xss(*args, &block)
118
+ Haml::Util.html_safe(form_for_without_haml_xss(*args, &block))
119
+ end
120
+ alias_method :form_for_without_haml_xss, :form_for
121
+ alias_method :form_for, :form_for_with_haml_xss
122
+ end
123
+
108
124
  module TextHelper
109
125
  def concat_with_haml_xss(string)
110
126
  if is_haml?
@@ -68,7 +68,7 @@ module Haml
68
68
  #
69
69
  # Example usage:
70
70
  #
71
- # Haml::Engine.new("<a href='http://google.com'>Blat</a>").render
71
+ # Haml::HTML.new("<a href='http://google.com'>Blat</a>").render
72
72
  # #=> "%a{:href => 'http://google.com'} Blat"
73
73
  class HTML
74
74
  # @param template [String, Hpricot::Node] The HTML template to convert
@@ -245,11 +245,12 @@ END
245
245
  return start_haml_comment if text[1] == SILENT_COMMENT
246
246
 
247
247
  raise SyntaxError.new(<<END.rstrip, index) if text[1..-1].strip == "end"
248
- You don't need to use "- end" in Haml. Use indentation instead:
248
+ You don't need to use "- end" in Haml. Un-indent to close a block:
249
249
  - if foo?
250
250
  %strong Foo!
251
251
  - else
252
252
  Not foo.
253
+ %p This line is un-indented, so it isn't part of the "if" block
253
254
  END
254
255
 
255
256
  push_silent(text[1..-1], true)
@@ -157,6 +157,31 @@ module Haml
157
157
  return nil
158
158
  end
159
159
 
160
+ # Returns whether this environment is using ActionPack
161
+ # version 3.0.0 or greater.
162
+ #
163
+ # @return [Boolean]
164
+ def ap_geq_3?
165
+ # The ActionPack module is always loaded automatically in Rails >= 3
166
+ return false unless defined?(ActionPack) && defined?(ActionPack::VERSION)
167
+
168
+ version =
169
+ if defined?(ActionPack::VERSION::MAJOR)
170
+ ActionPack::VERSION::MAJOR
171
+ else
172
+ # Rails 1.2
173
+ ActionPack::VERSION::Major
174
+ end
175
+
176
+ # 3.0.0.beta1 acts more like ActionPack 2
177
+ # for purposes of this method
178
+ # (checking whether block helpers require = or -).
179
+ # This extra check can be removed when beta2 is out.
180
+ version >= 3 &&
181
+ !(defined?(ActionPack::VERSION::TINY) &&
182
+ ActionPack::VERSION::TINY == "0.beta")
183
+ end
184
+
160
185
  # Returns an ActionView::Template* class.
161
186
  # In pre-3.0 versions of Rails, most of these classes
162
187
  # were of the form `ActionView::TemplateFoo`,
@@ -38,27 +38,42 @@ module Haml
38
38
  @@version[:number] = [:major, :minor, :teeny].map { |comp| @@version[comp] }.compact.join('.')
39
39
  @@version[:string] = @@version[:number].dup
40
40
 
41
- if File.exists?(scope('REVISION'))
42
- rev = File.read(scope('REVISION')).strip
43
- rev = nil if rev !~ /^([a-f0-9]+|\(.*\))$/
44
- end
45
-
46
- if (rev.nil? || rev == '(unknown)') && File.exists?(scope('.git/HEAD'))
47
- rev = File.read(scope('.git/HEAD')).strip
48
- if rev =~ /^ref: (.*)$/
49
- rev = File.read(scope(".git/#{$1}")).strip
50
- end
51
- end
52
-
53
- if rev
41
+ if rev = revision_number
54
42
  @@version[:rev] = rev
55
43
  unless rev[0] == ?(
56
44
  @@version[:string] << "." << rev[0...7]
57
45
  end
58
- @@version[:string] << " (#{name})"
59
46
  end
60
47
 
48
+ @@version[:string] << " (#{name})"
61
49
  @@version
62
50
  end
51
+
52
+ private
53
+
54
+ def revision_number
55
+ if File.exists?(scope('REVISION'))
56
+ rev = File.read(scope('REVISION')).strip
57
+ return rev unless rev =~ /^([a-f0-9]+|\(.*\))$/ || rev == '(unknown)'
58
+ end
59
+
60
+ return unless File.exists?(scope('.git/HEAD'))
61
+ rev = File.read(scope('.git/HEAD')).strip
62
+ return rev unless rev =~ /^ref: (.*)$/
63
+
64
+ ref_name = $1
65
+ ref_file = scope(".git/#{ref_name}")
66
+ info_file = scope(".git/info/refs")
67
+ return File.read(ref_file).strip if File.exists?(ref_file)
68
+ return unless File.exists?(info_file)
69
+ File.open(info_file) do |f|
70
+ f.each do |l|
71
+ sha, ref = l.strip.split("\t", 2)
72
+ next unless ref == ref_name
73
+ return sha
74
+ end
75
+ end
76
+ return nil
77
+ end
63
78
  end
64
79
  end
@@ -36,7 +36,14 @@ class EngineTest < Test::Unit::TestCase
36
36
  "%p{:a => 'b',\n:c => 'd',\n:e => raise('foo')}" => ["foo", 3],
37
37
  " %p foo" => "Indenting at the beginning of the document is illegal.",
38
38
  " %p foo" => "Indenting at the beginning of the document is illegal.",
39
- "- end" => "You don't need to use \"- end\" in Haml. Use indentation instead:\n- if foo?\n %strong Foo!\n- else\n Not foo.",
39
+ "- end" => <<MESSAGE.rstrip,
40
+ You don't need to use "- end" in Haml. Un-indent to close a block:
41
+ - if foo?
42
+ %strong Foo!
43
+ - else
44
+ Not foo.
45
+ %p This line is un-indented, so it isn't part of the "if" block
46
+ MESSAGE
40
47
  " \n\t\n %p foo" => ["Indenting at the beginning of the document is illegal.", 3],
41
48
  "\n\n %p foo" => ["Indenting at the beginning of the document is illegal.", 3],
42
49
  "%p\n foo\n foo" => ["Inconsistent indentation: 1 space was used for indentation, but the rest of the document was indented using 2 spaces.", 3],
@@ -65,7 +65,21 @@ class HelperTest < Test::Unit::TestCase
65
65
  assert_equal("foo\n bar\nbaz\n", render("foo\n- tab_up\nbar\n- tab_down\nbaz"))
66
66
  assert_equal(" <p>tabbed</p>\n", render("- buffer.tabulation=5\n%p tabbed"))
67
67
  end
68
-
68
+
69
+ def test_with_tabs
70
+ assert_equal(<<HTML, render(<<HAML))
71
+ Foo
72
+ Bar
73
+ Baz
74
+ Baz
75
+ HTML
76
+ Foo
77
+ - with_tabs 2 do
78
+ = "Bar\\nBaz"
79
+ Baz
80
+ HAML
81
+ end
82
+
69
83
  def test_helpers_dont_leak
70
84
  # Haml helpers shouldn't be accessible from ERB
71
85
  render("foo")
@@ -93,9 +107,16 @@ class HelperTest < Test::Unit::TestCase
93
107
  def test_form_tag
94
108
  # This is usually provided by ActionController::Base.
95
109
  def @base.protect_against_forgery?; false; end
96
- result = render("- form_tag 'foo' do\n %p bar\n %strong baz", :action_view)
97
- should_be = "<form action=\"foo\" method=\"post\">\n <p>bar</p>\n <strong>baz</strong>\n</form>\n"
98
- assert_equal(should_be, result)
110
+ assert_equal(<<HTML, render(<<HAML, :action_view))
111
+ <form action="foo" method="post">
112
+ <p>bar</p>
113
+ <strong>baz</strong>
114
+ </form>
115
+ HTML
116
+ #{rails_block_helper_char} form_tag 'foo' do
117
+ %p bar
118
+ %strong baz
119
+ HAML
99
120
  end
100
121
 
101
122
  def test_text_area
@@ -114,12 +135,12 @@ class HelperTest < Test::Unit::TestCase
114
135
  end
115
136
 
116
137
  def test_content_tag_block
117
- assert_equal(<<HTML.strip, render(<<HAML, :action_view))
138
+ assert_equal(<<HTML.strip, render(<<HAML, :action_view).strip)
118
139
  <div><p>bar</p>
119
140
  <strong>bar</strong>
120
141
  </div>
121
142
  HTML
122
- - content_tag :div do
143
+ #{rails_block_helper_char} content_tag :div do
123
144
  %p bar
124
145
  %strong bar
125
146
  HAML
@@ -70,8 +70,9 @@ class TemplateTest < Test::Unit::TestCase
70
70
  end
71
71
 
72
72
  if Haml::Util.has?(:private_method, base, :evaluate_assigns)
73
+ # Rails < 3.0
73
74
  base.send(:evaluate_assigns)
74
- else
75
+ elsif Haml::Util.has?(:private_method, base, :_evaluate_assigns_and_ivars)
75
76
  # Rails 2.2
76
77
  base.send(:_evaluate_assigns_and_ivars)
77
78
  end
@@ -80,7 +81,13 @@ class TemplateTest < Test::Unit::TestCase
80
81
  # It's usually provided by ActionController::Base.
81
82
  def base.protect_against_forgery?; false; end
82
83
 
83
- base.controller = DummyController.new
84
+ # In Rails <= 2.1, a fake controller object was needed
85
+ # to provide the controller path.
86
+ if ActionPack::VERSION::MAJOR < 2 ||
87
+ (ActionPack::VERSION::MAJOR == 2 && ActionPack::VERSION::MINOR < 2)
88
+ base.controller = DummyController.new
89
+ end
90
+
84
91
  base
85
92
  end
86
93
 
@@ -332,7 +339,7 @@ HAML
332
339
  <input id="article_body" name="article[body]" size="30" type="text" value="World" />
333
340
  </form>
334
341
  HTML
335
- - form_for :article, @article, :url => '' do |f|
342
+ #{rails_block_helper_char} form_for :article, @article, :url => '' do |f|
336
343
  Title:
337
344
  = f.text_field :title
338
345
  Body:
@@ -62,6 +62,19 @@ click
62
62
  <input id="article_body" name="article[body]" size="30" type="text" value="World" />
63
63
  </form>
64
64
  </div>
65
+ - elsif Haml::Util.ap_geq_3?
66
+ %p
67
+ = form_tag ''
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
65
78
  - else
66
79
  %p
67
80
  = form_tag ''
@@ -32,4 +32,9 @@ class Test::Unit::TestCase
32
32
  def silence_warnings(&block)
33
33
  Haml::Util.silence_warnings(&block)
34
34
  end
35
+
36
+ def rails_block_helper_char
37
+ return '=' if Haml::Util.ap_geq_3?
38
+ return '-'
39
+ end
35
40
  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.2.20
4
+ version: 2.2.21
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: 2010-02-15 00:00:00 -08:00
13
+ date: 2010-03-12 00:00:00 -08:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -43,201 +43,203 @@ executables:
43
43
  extensions: []
44
44
 
45
45
  extra_rdoc_files:
46
- - VERSION_NAME
47
- - CONTRIBUTING
48
- - README.md
49
- - MIT-LICENSE
50
46
  - VERSION
47
+ - MIT-LICENSE
48
+ - README.md
49
+ - VERSION_NAME
51
50
  - REVISION
51
+ - CONTRIBUTING
52
+ - REMEMBER
52
53
  files:
53
54
  - rails/init.rb
54
55
  - lib/sass.rb
55
- - lib/sass/css.rb
56
- - lib/sass/script/node.rb
57
- - lib/sass/script/number.rb
58
- - lib/sass/script/operation.rb
59
- - lib/sass/script/literal.rb
60
- - lib/sass/script/functions.rb
61
- - lib/sass/script/bool.rb
62
- - lib/sass/script/color.rb
63
- - lib/sass/script/lexer.rb
64
- - lib/sass/script/parser.rb
65
- - lib/sass/script/variable.rb
66
- - lib/sass/script/string.rb
67
- - lib/sass/script/funcall.rb
68
- - lib/sass/script/unary_operation.rb
56
+ - lib/sass/plugin/rails.rb
57
+ - lib/sass/plugin/rack.rb
58
+ - lib/sass/plugin/merb.rb
69
59
  - lib/sass/script.rb
70
60
  - lib/sass/error.rb
71
- - lib/sass/repl.rb
72
- - lib/sass/tree/comment_node.rb
73
- - lib/sass/tree/node.rb
74
61
  - lib/sass/tree/for_node.rb
75
- - lib/sass/tree/debug_node.rb
76
- - lib/sass/tree/import_node.rb
77
- - lib/sass/tree/while_node.rb
78
- - lib/sass/tree/mixin_def_node.rb
79
- - lib/sass/tree/if_node.rb
80
62
  - lib/sass/tree/mixin_node.rb
81
- - lib/sass/tree/directive_node.rb
82
- - lib/sass/tree/rule_node.rb
63
+ - lib/sass/tree/if_node.rb
83
64
  - lib/sass/tree/prop_node.rb
65
+ - lib/sass/tree/mixin_def_node.rb
84
66
  - lib/sass/tree/variable_node.rb
85
- - lib/sass/plugin/rails.rb
86
- - lib/sass/plugin/rack.rb
87
- - lib/sass/plugin/merb.rb
88
- - lib/sass/environment.rb
67
+ - lib/sass/tree/debug_node.rb
68
+ - lib/sass/tree/directive_node.rb
69
+ - lib/sass/tree/node.rb
70
+ - lib/sass/tree/comment_node.rb
71
+ - lib/sass/tree/rule_node.rb
72
+ - lib/sass/tree/import_node.rb
73
+ - lib/sass/tree/while_node.rb
89
74
  - lib/sass/files.rb
90
- - lib/sass/engine.rb
91
75
  - lib/sass/plugin.rb
92
- - lib/haml/filters.rb
76
+ - lib/sass/script/parser.rb
77
+ - lib/sass/script/color.rb
78
+ - lib/sass/script/string.rb
79
+ - lib/sass/script/unary_operation.rb
80
+ - lib/sass/script/number.rb
81
+ - lib/sass/script/funcall.rb
82
+ - lib/sass/script/variable.rb
83
+ - lib/sass/script/functions.rb
84
+ - lib/sass/script/bool.rb
85
+ - lib/sass/script/lexer.rb
86
+ - lib/sass/script/operation.rb
87
+ - lib/sass/script/node.rb
88
+ - lib/sass/script/literal.rb
89
+ - lib/sass/css.rb
90
+ - lib/sass/engine.rb
91
+ - lib/sass/repl.rb
92
+ - lib/sass/environment.rb
93
+ - lib/haml/util.rb
93
94
  - lib/haml/exec.rb
95
+ - lib/haml/html.rb
94
96
  - lib/haml/error.rb
97
+ - lib/haml/buffer.rb
95
98
  - lib/haml/template.rb
96
- - lib/haml/shared.rb
97
- - lib/haml/engine.rb
98
- - lib/haml/version.rb
99
- - lib/haml/template/patch.rb
100
99
  - lib/haml/template/plugin.rb
100
+ - lib/haml/template/patch.rb
101
101
  - lib/haml/helpers.rb
102
- - lib/haml/buffer.rb
103
- - lib/haml/html.rb
102
+ - lib/haml/version.rb
103
+ - lib/haml/filters.rb
104
+ - lib/haml/engine.rb
104
105
  - lib/haml/precompiler.rb
105
- - lib/haml/util.rb
106
+ - lib/haml/shared.rb
107
+ - lib/haml/helpers/action_view_extensions.rb
106
108
  - lib/haml/helpers/action_view_mods.rb
107
109
  - lib/haml/helpers/xss_mods.rb
108
- - lib/haml/helpers/action_view_extensions.rb
109
110
  - lib/haml.rb
110
- - bin/sass
111
111
  - bin/css2sass
112
- - bin/html2haml
112
+ - bin/sass
113
113
  - bin/haml
114
- - test/linked_rails.rb
115
- - test/benchmark.rb
114
+ - bin/html2haml
116
115
  - test/sass/script_test.rb
117
- - test/sass/css2sass_test.rb
118
- - test/sass/results/units.css
119
- - test/sass/results/parent_ref.css
120
- - test/sass/results/compressed.css
121
- - test/sass/results/complex.css
122
- - test/sass/results/compact.css
123
- - test/sass/results/mixins.css
124
- - test/sass/results/line_numbers.css
125
- - test/sass/results/alt.css
126
- - test/sass/results/subdir/subdir.css
127
- - test/sass/results/subdir/nested_subdir/nested_subdir.css
128
- - test/sass/results/nested.css
129
- - test/sass/results/import.css
130
- - test/sass/results/multiline.css
131
- - test/sass/results/script.css
132
- - test/sass/results/basic.css
133
- - test/sass/results/expanded.css
134
- - test/sass/more_results/more_import.css
135
116
  - test/sass/more_results/more1_with_line_comments.css
136
117
  - test/sass/more_results/more1.css
137
- - test/sass/templates/basic.sass
138
- - test/sass/templates/bork.sass
118
+ - test/sass/more_results/more_import.css
119
+ - test/sass/templates/bork2.sass
139
120
  - test/sass/templates/compressed.sass
140
- - test/sass/templates/import.sass
141
- - test/sass/templates/script.sass
142
121
  - test/sass/templates/expanded.sass
143
- - test/sass/templates/nested.sass
122
+ - test/sass/templates/import.sass
123
+ - test/sass/templates/subdir/subdir.sass
124
+ - test/sass/templates/subdir/nested_subdir/_nested_partial.sass
125
+ - test/sass/templates/subdir/nested_subdir/nested_subdir.sass
126
+ - test/sass/templates/basic.sass
144
127
  - test/sass/templates/_partial.sass
128
+ - test/sass/templates/units.sass
129
+ - test/sass/templates/mixins.sass
130
+ - test/sass/templates/multiline.sass
145
131
  - test/sass/templates/line_numbers.sass
132
+ - test/sass/templates/nested.sass
146
133
  - test/sass/templates/compact.sass
147
- - test/sass/templates/subdir/subdir.sass
148
- - test/sass/templates/subdir/nested_subdir/nested_subdir.sass
149
- - test/sass/templates/subdir/nested_subdir/_nested_partial.sass
150
- - test/sass/templates/parent_ref.sass
151
134
  - test/sass/templates/alt.sass
135
+ - test/sass/templates/script.sass
152
136
  - test/sass/templates/importee.sass
153
- - test/sass/templates/mixins.sass
154
- - test/sass/templates/multiline.sass
155
- - test/sass/templates/units.sass
137
+ - test/sass/templates/parent_ref.sass
138
+ - test/sass/templates/bork.sass
156
139
  - test/sass/templates/complex.sass
157
- - test/sass/templates/bork2.sass
158
- - test/sass/more_templates/_more_partial.sass
140
+ - test/sass/css2sass_test.rb
141
+ - test/sass/plugin_test.rb
159
142
  - test/sass/more_templates/more1.sass
160
143
  - test/sass/more_templates/more_import.sass
144
+ - test/sass/more_templates/_more_partial.sass
161
145
  - test/sass/functions_test.rb
146
+ - test/sass/results/nested.css
147
+ - test/sass/results/units.css
148
+ - test/sass/results/script.css
149
+ - test/sass/results/subdir/nested_subdir/nested_subdir.css
150
+ - test/sass/results/subdir/subdir.css
151
+ - test/sass/results/import.css
152
+ - test/sass/results/compact.css
153
+ - test/sass/results/expanded.css
154
+ - test/sass/results/alt.css
155
+ - test/sass/results/mixins.css
156
+ - test/sass/results/complex.css
157
+ - test/sass/results/compressed.css
158
+ - test/sass/results/parent_ref.css
159
+ - test/sass/results/line_numbers.css
160
+ - test/sass/results/multiline.css
161
+ - test/sass/results/basic.css
162
162
  - test/sass/engine_test.rb
163
- - test/sass/plugin_test.rb
164
163
  - test/haml/mocks/article.rb
165
- - test/haml/rhtml/_av_partial_2.rhtml
166
- - test/haml/rhtml/standard.rhtml
167
- - test/haml/rhtml/_av_partial_1.rhtml
168
- - test/haml/rhtml/action_view.rhtml
169
164
  - test/haml/util_test.rb
170
- - test/haml/spec/ruby_haml_test.rb
171
- - test/haml/spec/README.md
172
- - test/haml/spec/lua_haml_spec.lua
173
- - test/haml/spec/tests.json
174
- - test/haml/html2haml_test.rb
175
165
  - test/haml/template_test.rb
166
+ - test/haml/html2haml_test.rb
167
+ - test/haml/rhtml/_av_partial_1.rhtml
168
+ - test/haml/rhtml/standard.rhtml
169
+ - test/haml/rhtml/action_view.rhtml
170
+ - test/haml/rhtml/_av_partial_2.rhtml
176
171
  - test/haml/helper_test.rb
177
- - test/haml/results/tag_parsing.xhtml
178
- - test/haml/results/content_for_layout.xhtml
179
- - test/haml/results/helpers.xhtml
180
- - test/haml/results/original_engine.xhtml
181
- - test/haml/results/very_basic.xhtml
182
- - test/haml/results/helpful.xhtml
183
- - test/haml/results/list.xhtml
184
- - test/haml/results/partials.xhtml
185
- - test/haml/results/eval_suppressed.xhtml
186
- - test/haml/results/nuke_inner_whitespace.xhtml
187
- - test/haml/results/whitespace_handling.xhtml
188
- - test/haml/results/render_layout.xhtml
189
- - test/haml/results/silent_script.xhtml
190
- - test/haml/results/standard.xhtml
191
- - test/haml/results/just_stuff.xhtml
192
- - test/haml/results/partial_layout.xhtml
193
- - test/haml/results/filters.xhtml
194
- - test/haml/results/nuke_outer_whitespace.xhtml
195
- - test/haml/markaby/standard.mab
196
- - test/haml/templates/tag_parsing.haml
197
- - test/haml/templates/nuke_inner_whitespace.haml
172
+ - test/haml/templates/action_view_ugly.haml
173
+ - test/haml/templates/list.haml
174
+ - test/haml/templates/_text_area.haml
175
+ - test/haml/templates/_partial.haml
176
+ - test/haml/templates/nuke_outer_whitespace.haml
177
+ - test/haml/templates/render_layout.haml
178
+ - test/haml/templates/_av_partial_2.haml
198
179
  - test/haml/templates/partial_layout.haml
199
- - test/haml/templates/_av_partial_2_ugly.haml
180
+ - test/haml/templates/helpful.haml
181
+ - test/haml/templates/_av_partial_1_ugly.haml
182
+ - test/haml/templates/just_stuff.haml
183
+ - test/haml/templates/standard_ugly.haml
184
+ - test/haml/templates/silent_script.haml
185
+ - test/haml/templates/very_basic.haml
186
+ - test/haml/templates/nuke_inner_whitespace.haml
187
+ - test/haml/templates/eval_suppressed.haml
188
+ - test/haml/templates/tag_parsing.haml
189
+ - test/haml/templates/whitespace_handling.haml
200
190
  - test/haml/templates/partials.haml
191
+ - test/haml/templates/standard.haml
192
+ - test/haml/templates/partialize.haml
201
193
  - test/haml/templates/_layout_for_partial.haml
202
- - test/haml/templates/original_engine.haml
203
- - test/haml/templates/helpers.haml
194
+ - test/haml/templates/_av_partial_1.haml
195
+ - test/haml/templates/filters.haml
204
196
  - test/haml/templates/_layout.erb
205
- - test/haml/templates/action_view_ugly.haml
206
197
  - test/haml/templates/content_for_layout.haml
207
- - test/haml/templates/silent_script.haml
208
- - test/haml/templates/very_basic.haml
209
- - test/haml/templates/render_layout.haml
210
- - test/haml/templates/filters.haml
211
- - test/haml/templates/_av_partial_1.haml
212
- - test/haml/templates/standard_ugly.haml
213
- - test/haml/templates/_partial.haml
214
- - test/haml/templates/nuke_outer_whitespace.haml
198
+ - test/haml/templates/_av_partial_2_ugly.haml
199
+ - test/haml/templates/helpers.haml
200
+ - test/haml/templates/original_engine.haml
215
201
  - test/haml/templates/breakage.haml
216
- - test/haml/templates/list.haml
217
- - test/haml/templates/standard.haml
218
- - test/haml/templates/whitespace_handling.haml
219
- - test/haml/templates/eval_suppressed.haml
220
202
  - test/haml/templates/action_view.haml
221
- - test/haml/templates/_av_partial_2.haml
222
- - test/haml/templates/partialize.haml
223
- - test/haml/templates/just_stuff.haml
224
- - test/haml/templates/helpful.haml
225
- - test/haml/templates/_av_partial_1_ugly.haml
226
- - test/haml/templates/_text_area.haml
203
+ - test/haml/spec/tests.json
204
+ - test/haml/spec/lua_haml_spec.lua
205
+ - test/haml/spec/ruby_haml_test.rb
206
+ - test/haml/spec/README.md
207
+ - test/haml/results/content_for_layout.xhtml
208
+ - test/haml/results/just_stuff.xhtml
209
+ - test/haml/results/whitespace_handling.xhtml
210
+ - test/haml/results/nuke_outer_whitespace.xhtml
211
+ - test/haml/results/silent_script.xhtml
212
+ - test/haml/results/filters.xhtml
213
+ - test/haml/results/standard.xhtml
214
+ - test/haml/results/nuke_inner_whitespace.xhtml
215
+ - test/haml/results/helpful.xhtml
216
+ - test/haml/results/very_basic.xhtml
217
+ - test/haml/results/eval_suppressed.xhtml
218
+ - test/haml/results/partials.xhtml
219
+ - test/haml/results/render_layout.xhtml
220
+ - test/haml/results/original_engine.xhtml
221
+ - test/haml/results/helpers.xhtml
222
+ - test/haml/results/list.xhtml
223
+ - test/haml/results/partial_layout.xhtml
224
+ - test/haml/results/tag_parsing.xhtml
225
+ - test/haml/markaby/standard.mab
227
226
  - test/haml/engine_test.rb
227
+ - test/linked_rails.rb
228
+ - test/benchmark.rb
228
229
  - test/test_helper.rb
229
- - extra/haml-mode.el
230
230
  - extra/sass-mode.el
231
+ - extra/haml-mode.el
231
232
  - extra/update_watch.rb
232
233
  - Rakefile
233
234
  - init.rb
234
235
  - .yardopts
235
- - VERSION_NAME
236
- - CONTRIBUTING
237
- - README.md
238
- - MIT-LICENSE
239
236
  - VERSION
237
+ - MIT-LICENSE
238
+ - README.md
239
+ - VERSION_NAME
240
240
  - REVISION
241
+ - CONTRIBUTING
242
+ - REMEMBER
241
243
  has_rdoc: true
242
244
  homepage: http://haml-lang.com/
243
245
  licenses: []
@@ -276,12 +278,12 @@ summary: An elegant, structured XHTML/XML templating engine. Comes with Sass, a
276
278
  test_files:
277
279
  - test/sass/script_test.rb
278
280
  - test/sass/css2sass_test.rb
281
+ - test/sass/plugin_test.rb
279
282
  - test/sass/functions_test.rb
280
283
  - test/sass/engine_test.rb
281
- - test/sass/plugin_test.rb
282
284
  - test/haml/util_test.rb
283
- - test/haml/spec/ruby_haml_test.rb
284
- - test/haml/html2haml_test.rb
285
285
  - test/haml/template_test.rb
286
+ - test/haml/html2haml_test.rb
286
287
  - test/haml/helper_test.rb
288
+ - test/haml/spec/ruby_haml_test.rb
287
289
  - test/haml/engine_test.rb