haml-edge 2.1.34 → 2.1.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/EDGE_GEM_VERSION +1 -1
- data/MIT-LICENSE +1 -1
- data/README.md +42 -31
- data/Rakefile +11 -3
- data/VERSION +1 -1
- data/extra/update_watch.rb +1 -1
- data/lib/haml/exec.rb +3 -3
- data/lib/sass/css.rb +19 -6
- data/lib/sass/engine.rb +5 -2
- data/lib/sass/tree/comment_node.rb +6 -2
- data/lib/sass/tree/node.rb +3 -1
- data/test/sass/engine_test.rb +27 -3
- metadata +6 -6
data/EDGE_GEM_VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.1.
|
|
1
|
+
2.1.35
|
data/MIT-LICENSE
CHANGED
data/README.md
CHANGED
|
@@ -11,24 +11,34 @@ and providing elegant, easily understandable, and powerful syntax.
|
|
|
11
11
|
|
|
12
12
|
## Using
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
The first step of all of these is to install the Haml gem:
|
|
14
|
+
Haml and Sass can be used from the command line
|
|
15
|
+
or as part of a Ruby web framework.
|
|
16
|
+
The first step is to install the gem:
|
|
18
17
|
|
|
19
18
|
gem install haml
|
|
20
19
|
|
|
20
|
+
After you convert some HTML to Haml or some CSS to Sass,
|
|
21
|
+
you can run
|
|
22
|
+
|
|
23
|
+
haml document.haml
|
|
24
|
+
sass style.sass
|
|
25
|
+
|
|
26
|
+
to compile them.
|
|
27
|
+
For more information on these commands, check out
|
|
28
|
+
|
|
29
|
+
haml --help
|
|
30
|
+
sass --help
|
|
31
|
+
|
|
21
32
|
To install Haml and Sass as a Rails plugin,
|
|
22
33
|
just run `haml --rails path/to/rails/app`
|
|
23
34
|
and both Haml and Sass will be installed.
|
|
24
|
-
Views with the `.
|
|
25
|
-
extension will automatically use Haml.
|
|
35
|
+
Views with the `.html.haml` extension will automatically use Haml.
|
|
26
36
|
Sass is a little more complicated;
|
|
27
|
-
`.sass` files should be placed in public/stylesheets/sass
|
|
37
|
+
`.sass` files should be placed in `public/stylesheets/sass`,
|
|
28
38
|
where they'll be automatically compiled
|
|
29
|
-
to corresponding CSS files in public/stylesheets when needed
|
|
39
|
+
to corresponding CSS files in `public/stylesheets` when needed
|
|
30
40
|
(the Sass template directory is customizable...
|
|
31
|
-
see the Sass
|
|
41
|
+
see [the Sass reference](http://sass-lang.com/docs/yardoc/SASS_REFERENCE.md.html#template_location-option) for details).
|
|
32
42
|
|
|
33
43
|
For Merb, `.html.haml` views will work without any further modification.
|
|
34
44
|
To enable Sass, you also need to add a dependency.
|
|
@@ -36,11 +46,11 @@ To do so, just add
|
|
|
36
46
|
|
|
37
47
|
dependency "merb-haml"
|
|
38
48
|
|
|
39
|
-
to config/dependencies.rb (or config/init.rb in a flat/very flat Merb application).
|
|
49
|
+
to `config/dependencies.rb` (or `config/init.rb` in a flat/very flat Merb application).
|
|
40
50
|
Then it'll work just like it does in Rails.
|
|
41
51
|
|
|
42
52
|
To use Haml and Sass programatically,
|
|
43
|
-
check out the
|
|
53
|
+
check out the [YARD documentation](http://haml-lang.com/docs/yardoc).
|
|
44
54
|
|
|
45
55
|
## Formatting
|
|
46
56
|
|
|
@@ -302,26 +312,27 @@ See `css2sass --help` for further information and options.
|
|
|
302
312
|
|
|
303
313
|
## Authors
|
|
304
314
|
|
|
305
|
-
Haml and Sass
|
|
306
|
-
of the original implementation. However, Hampton
|
|
307
|
-
around the code anymore and
|
|
308
|
-
Hampton lives in
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
Nathan Weizenbaum is the primary
|
|
312
|
-
implementation of Haml. His hard work has kept the project
|
|
313
|
-
answering forum posts, fixing bugs, refactoring, finding
|
|
314
|
-
writing documentation, implementing new features, and
|
|
315
|
-
coffee (a fitting task for a boy-genius). Nathan lives in
|
|
316
|
-
while not being a student at University of
|
|
317
|
-
Unspace Interactive
|
|
318
|
-
|
|
319
|
-
Chris Eppstein is a core contributor to
|
|
320
|
-
Sass
|
|
321
|
-
on
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
315
|
+
Haml and Sass were created by [Hampton Catlin](http://hamptoncatlin.com)
|
|
316
|
+
(hcatlin) and he is the author of the original implementation. However, Hampton
|
|
317
|
+
doesn't even know his way around the code anymore and now occasionally consults
|
|
318
|
+
on the language issues. Hampton lives in Jacksonville, Florida and is the lead
|
|
319
|
+
mobile developer for Wikimedia.
|
|
320
|
+
|
|
321
|
+
[Nathan Weizenbaum](http://nex-3.com) is the primary developer and architect of
|
|
322
|
+
the "modern" Ruby implementation of Haml. His hard work has kept the project
|
|
323
|
+
alive by endlessly answering forum posts, fixing bugs, refactoring, finding
|
|
324
|
+
speed improvements, writing documentation, implementing new features, and
|
|
325
|
+
getting Hampton coffee (a fitting task for a boy-genius). Nathan lives in
|
|
326
|
+
Seattle, Washington and while not being a student at the University of
|
|
327
|
+
Washington or working at an internship, he consults for Unspace Interactive.
|
|
328
|
+
|
|
329
|
+
[Chris Eppstein](http://acts-as-architect.blogspot.com) is a core contributor to
|
|
330
|
+
Sass and the creator of Compass, the first Sass-based framework. Chris focuses
|
|
331
|
+
on making Sass more powerful, easy to use, and on ways to speed its adoption
|
|
332
|
+
through the web development community. Chris lives in San Jose, California with
|
|
333
|
+
his wife and daughter. He is the Software Architect for
|
|
334
|
+
[Caring.com](http://caring.com), a website devoted to the 34 Million caregivers
|
|
335
|
+
whose parents are sick or elderly, that uses Haml and Sass.
|
|
325
336
|
|
|
326
337
|
If you use this software, you must pay Hampton a compliment. And
|
|
327
338
|
buy Nathan some jelly beans. Maybe pet a kitten. Yeah. Pet that kitty.
|
data/Rakefile
CHANGED
|
@@ -81,6 +81,8 @@ task :release => [:package] do
|
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
task :release_edge do
|
|
84
|
+
puts "#{'=' * 50} Running rake release_edge"
|
|
85
|
+
|
|
84
86
|
sh %{git checkout edge-gem}
|
|
85
87
|
sh %{git reset --hard origin/edge-gem}
|
|
86
88
|
sh %{git merge origin/master}
|
|
@@ -153,11 +155,12 @@ rescue LoadError
|
|
|
153
155
|
end
|
|
154
156
|
|
|
155
157
|
task :pages do
|
|
158
|
+
puts "#{'=' * 50} Running rake proj PROJ=#{ENV["PROJ"].inspect}"
|
|
156
159
|
raise 'No ENV["PROJ"]!' unless proj = ENV["PROJ"]
|
|
157
160
|
sh %{git checkout #{proj}-pages}
|
|
158
161
|
sh %{git reset --hard origin/#{proj}-pages}
|
|
159
162
|
|
|
160
|
-
sh %{
|
|
163
|
+
sh %{rake build --trace}
|
|
161
164
|
sh %{rsync -av --delete site/ /var/www/#{proj}-pages}
|
|
162
165
|
end
|
|
163
166
|
|
|
@@ -246,15 +249,20 @@ end
|
|
|
246
249
|
# ----- Handling Updates -----
|
|
247
250
|
|
|
248
251
|
task :handle_update do
|
|
252
|
+
puts
|
|
253
|
+
puts
|
|
254
|
+
puts '=' * 150
|
|
255
|
+
puts "Running rake REF=#{ENV["REF"].inspect}"
|
|
256
|
+
|
|
249
257
|
sh %{git checkout master}
|
|
250
258
|
sh %{git fetch origin}
|
|
251
259
|
sh %{git reset --hard origin/master}
|
|
252
260
|
|
|
253
261
|
begin
|
|
254
262
|
if ENV["REF"] == "refs/heads/master"
|
|
255
|
-
sh %{rake release_edge}
|
|
263
|
+
sh %{rake release_edge --trace}
|
|
256
264
|
elsif ENV["REF"] =~ %r{^refs/heads/(haml|sass)-pages$}
|
|
257
|
-
sh %{rake pages PROJ=#{$1}}
|
|
265
|
+
sh %{rake pages --trace PROJ=#{$1}}
|
|
258
266
|
end
|
|
259
267
|
ensure
|
|
260
268
|
sh %{git reset --hard HEAD}
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.1.
|
|
1
|
+
2.1.35
|
data/extra/update_watch.rb
CHANGED
data/lib/haml/exec.rb
CHANGED
|
@@ -87,10 +87,10 @@ module Haml
|
|
|
87
87
|
def process_result
|
|
88
88
|
input, output = @options[:input], @options[:output]
|
|
89
89
|
input_file, output_file = if input
|
|
90
|
-
[nil, open_file(
|
|
90
|
+
[nil, open_file(@args[0], 'w')]
|
|
91
91
|
else
|
|
92
|
-
@options[:filename] =
|
|
93
|
-
[open_file(
|
|
92
|
+
@options[:filename] = @args[0]
|
|
93
|
+
[open_file(@args[0]), open_file(@args[1], 'w')]
|
|
94
94
|
end
|
|
95
95
|
|
|
96
96
|
input ||= input_file
|
data/lib/sass/css.rb
CHANGED
|
@@ -181,13 +181,26 @@ module Sass
|
|
|
181
181
|
#
|
|
182
182
|
# @param re [Regexp] The regular expression to assert
|
|
183
183
|
def assert_match(re)
|
|
184
|
-
if
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
expected = re.source == Regexp.escape(re.source) ? "\"#{re.source}\"" : re.inspect
|
|
188
|
-
raise Exception.new("Invalid CSS on line #{line}: expected #{expected}")
|
|
184
|
+
if @template.scan(re)
|
|
185
|
+
whitespace
|
|
186
|
+
return
|
|
189
187
|
end
|
|
190
|
-
|
|
188
|
+
|
|
189
|
+
line = @template.string[0..@template.pos].count "\n"
|
|
190
|
+
pos = @template.pos
|
|
191
|
+
|
|
192
|
+
after = @template.string[pos - 15...pos]
|
|
193
|
+
after = "..." + after if pos >= 15
|
|
194
|
+
|
|
195
|
+
# Display basic regexps as plain old strings
|
|
196
|
+
expected = re.source == Regexp.escape(re.source) ? "\"#{re.source}\"" : re.inspect
|
|
197
|
+
|
|
198
|
+
was = @template.rest[0...15]
|
|
199
|
+
was += "..." if @template.rest.size >= 15
|
|
200
|
+
raise Exception.new(<<MESSAGE)
|
|
201
|
+
Invalid CSS on line #{line + 1} after #{after.inspect}:
|
|
202
|
+
expected #{expected}, was #{was.inspect}
|
|
203
|
+
MESSAGE
|
|
191
204
|
end
|
|
192
205
|
|
|
193
206
|
# Transform
|
data/lib/sass/engine.rb
CHANGED
|
@@ -170,7 +170,10 @@ module Sass
|
|
|
170
170
|
lines = []
|
|
171
171
|
string.gsub(/\r|\n|\r\n|\r\n/, "\n").scan(/^.*?$/).each_with_index do |line, index|
|
|
172
172
|
index += (@options[:line] || 1)
|
|
173
|
-
|
|
173
|
+
if line.strip.empty?
|
|
174
|
+
lines.last.text << "\n" if lines.last && lines.last.comment?
|
|
175
|
+
next
|
|
176
|
+
end
|
|
174
177
|
|
|
175
178
|
line_tab_str = line[/^\s*/]
|
|
176
179
|
unless line_tab_str.empty?
|
|
@@ -310,7 +313,7 @@ END
|
|
|
310
313
|
when MIXIN_DEFINITION_CHAR
|
|
311
314
|
parse_mixin_definition(line)
|
|
312
315
|
when MIXIN_INCLUDE_CHAR
|
|
313
|
-
if line.text[1].nil?
|
|
316
|
+
if line.text[1].nil? || line.text[1] == ?\s
|
|
314
317
|
Tree::RuleNode.new(line.text)
|
|
315
318
|
else
|
|
316
319
|
parse_mixin_include(line, root)
|
|
@@ -50,9 +50,13 @@ module Sass::Tree
|
|
|
50
50
|
def to_s(tabs = 0, _ = nil)
|
|
51
51
|
return if invisible?
|
|
52
52
|
|
|
53
|
+
content = (value.split("\n") + lines.map {|l| l.text})
|
|
54
|
+
content.map! {|l| (l.empty? ? "" : " ") + l}
|
|
55
|
+
content.first.gsub!(/^ /, '')
|
|
56
|
+
content.last.gsub!(%r{ ?\*/ *$}, '')
|
|
57
|
+
|
|
53
58
|
spaces = ' ' * (tabs - 1)
|
|
54
|
-
spaces + "/* " +
|
|
55
|
-
map{|l| l.sub(%r{ ?\*/ *$},'')}.join(style == :compact ? ' ' : "\n#{spaces} * ") + " */"
|
|
59
|
+
spaces + "/* " + content.join(style == :compact ? '' : "\n#{spaces} *") + " */"
|
|
56
60
|
end
|
|
57
61
|
|
|
58
62
|
# Returns `true` if this is a silent comment
|
data/lib/sass/tree/node.rb
CHANGED
|
@@ -130,7 +130,9 @@ module Sass
|
|
|
130
130
|
result << child_str + (style == :compressed ? '' : "\n")
|
|
131
131
|
end
|
|
132
132
|
end
|
|
133
|
-
|
|
133
|
+
result.rstrip!
|
|
134
|
+
return "" if result.empty?
|
|
135
|
+
return result + "\n"
|
|
134
136
|
rescue Sass::SyntaxError => e; e.add_metadata(filename, line)
|
|
135
137
|
end
|
|
136
138
|
|
data/test/sass/engine_test.rb
CHANGED
|
@@ -186,8 +186,8 @@ SASS
|
|
|
186
186
|
end
|
|
187
187
|
|
|
188
188
|
def test_css_import
|
|
189
|
-
assert_equal("@import url(./fonts.css) screen
|
|
190
|
-
assert_equal("@import \"./fonts.css\" screen
|
|
189
|
+
assert_equal("@import url(./fonts.css) screen;\n", render("@import url(./fonts.css) screen"))
|
|
190
|
+
assert_equal("@import \"./fonts.css\" screen;\n", render("@import \"./fonts.css\" screen"))
|
|
191
191
|
end
|
|
192
192
|
|
|
193
193
|
def test_sass_import
|
|
@@ -273,7 +273,7 @@ SASS
|
|
|
273
273
|
end
|
|
274
274
|
|
|
275
275
|
def test_directive
|
|
276
|
-
assert_equal("@a b
|
|
276
|
+
assert_equal("@a b;\n", render("@a b"))
|
|
277
277
|
|
|
278
278
|
assert_equal("@a {\n b: c; }\n", render("@a\n :b c"))
|
|
279
279
|
assert_equal("@a { b: c; }\n", render("@a\n :b c", :style => :compact))
|
|
@@ -759,6 +759,30 @@ CSS
|
|
|
759
759
|
SASS
|
|
760
760
|
end
|
|
761
761
|
|
|
762
|
+
def test_plus_with_space
|
|
763
|
+
assert_equal(<<CSS, render(<<SASS))
|
|
764
|
+
a + b {
|
|
765
|
+
color: green; }
|
|
766
|
+
CSS
|
|
767
|
+
a
|
|
768
|
+
+ b
|
|
769
|
+
color: green
|
|
770
|
+
SASS
|
|
771
|
+
end
|
|
772
|
+
|
|
773
|
+
def test_empty_line_comment
|
|
774
|
+
assert_equal(<<CSS, render(<<SASS))
|
|
775
|
+
/* Foo
|
|
776
|
+
*
|
|
777
|
+
* Bar */
|
|
778
|
+
CSS
|
|
779
|
+
/*
|
|
780
|
+
Foo
|
|
781
|
+
|
|
782
|
+
Bar
|
|
783
|
+
SASS
|
|
784
|
+
end
|
|
785
|
+
|
|
762
786
|
private
|
|
763
787
|
|
|
764
788
|
def render(sass, options = {})
|
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.1.
|
|
4
|
+
version: 2.1.35
|
|
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-06-
|
|
13
|
+
date: 2009-06-25 00:00:00 -04:00
|
|
14
14
|
default_executable:
|
|
15
15
|
dependencies: []
|
|
16
16
|
|
|
@@ -24,8 +24,8 @@ executables:
|
|
|
24
24
|
extensions: []
|
|
25
25
|
|
|
26
26
|
extra_rdoc_files:
|
|
27
|
-
- MIT-LICENSE
|
|
28
27
|
- README.md
|
|
28
|
+
- MIT-LICENSE
|
|
29
29
|
- VERSION
|
|
30
30
|
- REVISION
|
|
31
31
|
- EDGE_GEM_VERSION
|
|
@@ -79,7 +79,6 @@ files:
|
|
|
79
79
|
- lib/sass/script/unary_operation.rb
|
|
80
80
|
- lib/sass/script/variable.rb
|
|
81
81
|
- lib/sass/tree
|
|
82
|
-
- lib/sass/tree/node.rb
|
|
83
82
|
- lib/sass/tree/comment_node.rb
|
|
84
83
|
- lib/sass/tree/debug_node.rb
|
|
85
84
|
- lib/sass/tree/directive_node.rb
|
|
@@ -88,10 +87,11 @@ files:
|
|
|
88
87
|
- lib/sass/tree/if_node.rb
|
|
89
88
|
- lib/sass/tree/mixin_def_node.rb
|
|
90
89
|
- lib/sass/tree/mixin_node.rb
|
|
90
|
+
- lib/sass/tree/node.rb
|
|
91
|
+
- lib/sass/tree/prop_node.rb
|
|
91
92
|
- lib/sass/tree/rule_node.rb
|
|
92
93
|
- lib/sass/tree/variable_node.rb
|
|
93
94
|
- lib/sass/tree/while_node.rb
|
|
94
|
-
- lib/sass/tree/prop_node.rb
|
|
95
95
|
- bin/css2sass
|
|
96
96
|
- bin/haml
|
|
97
97
|
- bin/html2haml
|
|
@@ -227,8 +227,8 @@ files:
|
|
|
227
227
|
- extra/update_watch.rb
|
|
228
228
|
- Rakefile
|
|
229
229
|
- init.rb
|
|
230
|
-
- MIT-LICENSE
|
|
231
230
|
- README.md
|
|
231
|
+
- MIT-LICENSE
|
|
232
232
|
- VERSION
|
|
233
233
|
- REVISION
|
|
234
234
|
- EDGE_GEM_VERSION
|