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 +1 -0
- data/REMEMBER +6 -0
- data/Rakefile +61 -51
- data/VERSION +1 -1
- data/extra/haml-mode.el +11 -8
- data/extra/sass-mode.el +2 -2
- data/lib/haml/helpers.rb +27 -0
- data/lib/haml/helpers/action_view_mods.rb +69 -30
- data/lib/haml/helpers/xss_mods.rb +16 -0
- data/lib/haml/html.rb +1 -1
- data/lib/haml/precompiler.rb +2 -1
- data/lib/haml/util.rb +25 -0
- data/lib/haml/version.rb +29 -14
- data/test/haml/engine_test.rb +8 -1
- data/test/haml/helper_test.rb +27 -6
- data/test/haml/template_test.rb +10 -3
- data/test/haml/templates/helpers.haml +13 -0
- data/test/test_helper.rb +5 -0
- metadata +143 -141
data/.yardopts
CHANGED
data/REMEMBER
ADDED
@@ -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
|
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, :
|
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 =
|
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
|
230
|
-
Dir[
|
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' <<
|
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("
|
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("
|
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.
|
329
|
-
"v2.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
|
-
|
351
|
+
system("git clone git://github.com/rails/rails.git test/rails") rescue nil
|
340
352
|
begin
|
341
|
-
rails_versions.each
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
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.
|
1
|
+
2.2.21
|
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.
|
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
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
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.
|
data/extra/sass-mode.el
CHANGED
@@ -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.
|
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.
|
11
|
+
;; Package-Requires: ((haml-mode "2.2.21"))
|
12
12
|
|
13
13
|
;;; Commentary:
|
14
14
|
|
data/lib/haml/helpers.rb
CHANGED
@@ -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
|
-
|
135
|
-
|
136
|
-
|
137
|
-
if
|
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
|
-
|
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 =
|
149
|
-
|
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
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
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
|
-
|
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
|
172
|
-
|
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?
|
data/lib/haml/html.rb
CHANGED
@@ -68,7 +68,7 @@ module Haml
|
|
68
68
|
#
|
69
69
|
# Example usage:
|
70
70
|
#
|
71
|
-
# Haml::
|
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
|
data/lib/haml/precompiler.rb
CHANGED
@@ -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.
|
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)
|
data/lib/haml/util.rb
CHANGED
@@ -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`,
|
data/lib/haml/version.rb
CHANGED
@@ -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
|
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
|
data/test/haml/engine_test.rb
CHANGED
@@ -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" =>
|
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],
|
data/test/haml/helper_test.rb
CHANGED
@@ -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
|
-
|
97
|
-
|
98
|
-
|
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
|
-
|
143
|
+
#{rails_block_helper_char} content_tag :div do
|
123
144
|
%p bar
|
124
145
|
%strong bar
|
125
146
|
HAML
|
data/test/haml/template_test.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
-
|
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 ''
|
data/test/test_helper.rb
CHANGED
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.
|
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-
|
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/
|
56
|
-
- lib/sass/
|
57
|
-
- lib/sass/
|
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/
|
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/
|
86
|
-
- lib/sass/
|
87
|
-
- lib/sass/
|
88
|
-
- lib/sass/
|
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/
|
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/
|
103
|
-
- lib/haml/
|
102
|
+
- lib/haml/version.rb
|
103
|
+
- lib/haml/filters.rb
|
104
|
+
- lib/haml/engine.rb
|
104
105
|
- lib/haml/precompiler.rb
|
105
|
-
- lib/haml/
|
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/
|
112
|
+
- bin/sass
|
113
113
|
- bin/haml
|
114
|
-
-
|
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/
|
138
|
-
- test/sass/templates/
|
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/
|
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/
|
154
|
-
- test/sass/templates/
|
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/
|
158
|
-
- test/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/
|
178
|
-
- test/haml/
|
179
|
-
- test/haml/
|
180
|
-
- test/haml/
|
181
|
-
- test/haml/
|
182
|
-
- test/haml/
|
183
|
-
- test/haml/
|
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/
|
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/
|
203
|
-
- test/haml/templates/
|
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/
|
208
|
-
- test/haml/templates/
|
209
|
-
- test/haml/templates/
|
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/
|
222
|
-
- test/haml/
|
223
|
-
- test/haml/
|
224
|
-
- test/haml/
|
225
|
-
- test/haml/
|
226
|
-
- test/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
|