haml-edge 2.1.24 → 2.1.25
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/VERSION +1 -1
- data/lib/sass/engine.rb +19 -5
- data/lib/sass/tree/comment_node.rb +1 -1
- data/test/sass/engine_test.rb +19 -2
- metadata +2 -2
data/EDGE_GEM_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1.
|
1
|
+
2.1.25
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1.
|
1
|
+
2.1.25
|
data/lib/sass/engine.rb
CHANGED
@@ -69,7 +69,11 @@ module Sass
|
|
69
69
|
#
|
70
70
|
# `children`: [{Array}<{Line}>]
|
71
71
|
# : The lines nested below this one.
|
72
|
-
Line
|
72
|
+
class Line < Struct.new(:text, :tabs, :index, :offset, :filename, :children)
|
73
|
+
def comment?
|
74
|
+
text[0] == COMMENT_CHAR && (text[1] == SASS_COMMENT_CHAR || text[1] == CSS_COMMENT_CHAR)
|
75
|
+
end
|
76
|
+
end
|
73
77
|
|
74
78
|
# The character that begins a CSS attribute.
|
75
79
|
ATTRIBUTE_CHAR = ?:
|
@@ -156,7 +160,8 @@ module Sass
|
|
156
160
|
def tabulate(string)
|
157
161
|
tab_str = nil
|
158
162
|
first = true
|
159
|
-
|
163
|
+
lines = []
|
164
|
+
string.gsub(/\r|\n|\r\n|\r\n/, "\n").scan(/^.*?$/).each_with_index do |line, index|
|
160
165
|
index += (@options[:line] || 1)
|
161
166
|
next if line.strip.empty?
|
162
167
|
|
@@ -170,15 +175,24 @@ module Sass
|
|
170
175
|
end
|
171
176
|
end
|
172
177
|
first &&= !tab_str.nil?
|
173
|
-
|
178
|
+
if tab_str.nil?
|
179
|
+
lines << Line.new(line.strip, 0, index, 0, @options[:filename], [])
|
180
|
+
next
|
181
|
+
end
|
182
|
+
|
183
|
+
if lines.last && lines.last.comment? && line =~ /^(?:#{tab_str}){#{lines.last.tabs + 1}}(.*)$/
|
184
|
+
lines.last.text << "\n" << $1
|
185
|
+
next
|
186
|
+
end
|
174
187
|
|
175
188
|
line_tabs = line_tab_str.scan(tab_str).size
|
176
189
|
raise SyntaxError.new(<<END.strip.gsub("\n", ' '), index) if tab_str * line_tabs != line_tab_str
|
177
190
|
Inconsistent indentation: #{Haml::Shared.human_indentation line_tab_str, true} used for indentation,
|
178
191
|
but the rest of the document was indented using #{Haml::Shared.human_indentation tab_str}.
|
179
192
|
END
|
180
|
-
Line.new(line.strip, line_tabs, index, tab_str.size, @options[:filename], [])
|
181
|
-
end
|
193
|
+
lines << Line.new(line.strip, line_tabs, index, tab_str.size, @options[:filename], [])
|
194
|
+
end
|
195
|
+
lines
|
182
196
|
end
|
183
197
|
|
184
198
|
def tree(arr, i = 0)
|
@@ -51,7 +51,7 @@ module Sass::Tree
|
|
51
51
|
return if invisible?
|
52
52
|
|
53
53
|
spaces = ' ' * (tabs - 1)
|
54
|
-
spaces + "/* " + (
|
54
|
+
spaces + "/* " + (value.split("\n") + lines.map {|l| l.text}).
|
55
55
|
map{|l| l.sub(%r{ ?\*/ *$},'')}.join(style == :compact ? ' ' : "\n#{spaces} * ") + " */"
|
56
56
|
end
|
57
57
|
|
data/test/sass/engine_test.rb
CHANGED
@@ -657,8 +657,7 @@ foo
|
|
657
657
|
bar: baz
|
658
658
|
SASS
|
659
659
|
assert_equal(<<CSS, actual_css)
|
660
|
-
/*
|
661
|
-
* This is a comment that
|
660
|
+
/* This is a comment that
|
662
661
|
* continues to the second line. */
|
663
662
|
foo {
|
664
663
|
bar: baz; }
|
@@ -742,6 +741,24 @@ RESULT
|
|
742
741
|
SOURCE
|
743
742
|
end
|
744
743
|
|
744
|
+
def test_comment_with_crazy_indentation
|
745
|
+
assert_equal(<<CSS, render(<<SASS))
|
746
|
+
/* This is a loud comment:
|
747
|
+
* Where the indentation is wonky. */
|
748
|
+
.comment {
|
749
|
+
width: 1px; }
|
750
|
+
CSS
|
751
|
+
/*
|
752
|
+
This is a loud comment:
|
753
|
+
Where the indentation is wonky.
|
754
|
+
//
|
755
|
+
This is a silent comment:
|
756
|
+
Where the indentation is wonky.
|
757
|
+
.comment
|
758
|
+
width: 1px
|
759
|
+
SASS
|
760
|
+
end
|
761
|
+
|
745
762
|
private
|
746
763
|
|
747
764
|
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.25
|
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-17 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies: []
|
16
16
|
|