haml-edge 2.3.244 → 2.3.245

Sign up to get free protection for your applications and to get access to all the features.
data/EDGE_GEM_VERSION CHANGED
@@ -1 +1 @@
1
- 2.3.244
1
+ 2.3.245
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.3.244
1
+ 2.3.245
data/lib/haml/util.rb CHANGED
@@ -193,6 +193,30 @@ module Haml
193
193
  end
194
194
  end
195
195
 
196
+ # Computes a single longest common subsequence for `x` and `y`.
197
+ # If there are more than one longest common subsequences,
198
+ # the one returned is that which starts first in `x`.
199
+ #
200
+ # @param x [Array]
201
+ # @param y [Array]
202
+ # @return [Array] The LCS
203
+ def lcs(x, y)
204
+ x = [nil, *x]
205
+ y = [nil, *y]
206
+ lcs_backtrace(lcs_table(x, y), x, y, x.size-1, y.size-1)
207
+ end
208
+
209
+ # Computes all single longest common subsequences for `x` and `y`.
210
+ #
211
+ # @param x [Array]
212
+ # @param y [Array]
213
+ # @return [Set<Array>] The LCSes
214
+ def lcs_all(x, y)
215
+ x = [nil, *x]
216
+ y = [nil, *y]
217
+ lcs_backtrace_all(lcs_table(x, y), x, y, x.size-1, y.size-1)
218
+ end
219
+
196
220
  # Returns information about the caller of the previous method.
197
221
  #
198
222
  # @param entry [String] An entry in the `#caller` list, or a similarly formatted string
@@ -564,5 +588,46 @@ METHOD
564
588
  def static_method_name(name, *vars)
565
589
  "#{name}_#{vars.map {|v| !!v}.join('_')}"
566
590
  end
591
+
592
+ private
593
+
594
+ # Calculates the memoization table for the Least Common Subsequence algorithm.
595
+ # Algorithm from [Wikipedia](http://en.wikipedia.org/wiki/Longest_common_subsequence_problem#Computing_the_length_of_the_LCS)
596
+ def lcs_table(x, y)
597
+ c = Array.new(x.size) {[]}
598
+ x.size.times {|i| c[i][0] = 0}
599
+ y.size.times {|j| c[0][j] = 0}
600
+ (1...x.size).each do |i|
601
+ (1...y.size).each do |j|
602
+ c[i][j] =
603
+ if x[i] == y[j]
604
+ c[i-1][j-1] + 1
605
+ else
606
+ [c[i][j-1], c[i-1][j]].max
607
+ end
608
+ end
609
+ end
610
+ return c
611
+ end
612
+
613
+ # Computes a single longest common subsequence for arrays x and y.
614
+ # Algorithm from [Wikipedia](http://en.wikipedia.org/wiki/Longest_common_subsequence_problem#Reading_out_an_LCS)
615
+ def lcs_backtrace(c, x, y, i, j)
616
+ return [] if i == 0 || j == 0
617
+ return lcs_backtrace(c, x, y, i-1, j-1) << x[i] if x[i] == y[j]
618
+ return lcs_backtrace(c, x, y, i, j-1) if c[i][j-1] > c[i-1][j]
619
+ return lcs_backtrace(c, x, y, i-1, j)
620
+ end
621
+
622
+ # Computes all longest common subsequences for arrays x and y.
623
+ # Algorithm from [Wikipedia](http://en.wikipedia.org/wiki/Longest_common_subsequence_problem#Reading_out_all_LCSs)
624
+ def lcs_backtrace_all(c, x, y, i, j)
625
+ return Set[[]] if i == 0 || j == 0
626
+ return lcs_backtrace_all(c, x, y, i-1, j-1).map {|z| z << x[i]}.to_set if x[i] == y[j]
627
+ r = Set.new
628
+ r.merge(lcs_backtrace_all(c, x, y, i, j-1)) if c[i][j-1] >= c[i-1][j]
629
+ r.merge(lcs_backtrace_all(c, x, y, i-1, j)) if c[i-1][j] >= c[i][j-1]
630
+ r
631
+ end
567
632
  end
568
633
  end
@@ -35,6 +35,28 @@ module Sass
35
35
  members.each {|m| m.filename = filename}
36
36
  @filename = filename
37
37
  end
38
+
39
+ # Returns a hash code for this sequence.
40
+ #
41
+ # Subclasses should define `#_hash` rather than overriding this method,
42
+ # which automatically handles memoizing the result.
43
+ #
44
+ # @return [Fixnum]
45
+ def hash
46
+ @_hash ||= _hash
47
+ end
48
+
49
+ # Checks equality between this and another object.
50
+ #
51
+ # Subclasses should define `#_eql?` rather than overriding this method,
52
+ # which handles checking class equality and hash equality.
53
+ #
54
+ # @param other [Object] The object to test equality against
55
+ # @return [Boolean] Whether or not this is equal to `other`
56
+ def eql?(other)
57
+ other.class == self.class && other.hash == self.hash && _eql?(other)
58
+ end
59
+ alias_method :==, :eql?
38
60
  end
39
61
  end
40
62
  end
@@ -61,18 +61,13 @@ module Sass
61
61
  members.map {|m| m.inspect}.join(", ")
62
62
  end
63
63
 
64
- # Returns a hash code for this sequence.
65
- #
66
- # @return [Fixnum]
67
- def hash
64
+ private
65
+
66
+ def _hash
68
67
  members.hash
69
68
  end
70
69
 
71
- # Checks equality between this and another object.
72
- #
73
- # @param other [Object] The object to test equality against
74
- # @return [Boolean] Whether or not this is equal to `other`
75
- def eql?(other)
70
+ def _eql?(other)
76
71
  other.class == self.class && other.members.eql?(self.members)
77
72
  end
78
73
  end
@@ -118,22 +118,6 @@ module Sass
118
118
  members.map {|m| m.inspect}.join(" ")
119
119
  end
120
120
 
121
- # Returns a hash code for this sequence.
122
- #
123
- # @return [Fixnum]
124
- def hash
125
- members.reject {|m| m == "\n"}.hash
126
- end
127
-
128
- # Checks equality between this and another object.
129
- #
130
- # @param other [Object] The object to test equality against
131
- # @return [Boolean] Whether or not this is equal to `other`
132
- def eql?(other)
133
- other.class == self.class &&
134
- other.members.reject {|m| m == "\n"}.eql?(self.members.reject {|m| m == "\n"})
135
- end
136
-
137
121
  private
138
122
 
139
123
  # Conceptually, this expands "parenthesized selectors".
@@ -176,31 +160,45 @@ module Sass
176
160
  def subweave(seq1, seq2, cache = {})
177
161
  return [seq2] if seq1.empty?
178
162
  return [seq1] if seq2.empty?
179
- cache[[seq1, seq2]] ||=
180
- begin
181
- sseq1, rest1 = seq_split(seq1)
182
- sseq2, rest2 = seq_split(seq2)
183
-
184
- if sseq1.eql?(sseq2)
185
- subweave(rest1, rest2, cache).map {|subseq| sseq1 + subseq}
186
- else
187
- unified = unify_heads(sseq1, sseq2) || unify_heads(sseq2, sseq1)
188
- res = []
189
- subweave(rest1, seq2, cache).each {|subseq| res << sseq1 + subseq}
190
- subweave(rest1, rest2, cache).each {|subseq| res << unified + subseq} if unified
191
- subweave(seq1, rest2, cache).each {|subseq| res << sseq2 + subseq}
192
- res
193
- end
194
- end
163
+
164
+ seq1 = group_selectors(seq1)
165
+ seq2 = group_selectors(seq2)
166
+ lcs = Haml::Util.lcs(seq2, seq1)
167
+
168
+ diff = []
169
+ until lcs.empty?
170
+ diff << chunks(seq1, seq2) {|s| s.first == lcs.first} << [lcs.shift]
171
+ seq1.shift
172
+ seq2.shift
173
+ end
174
+ diff << chunks(seq1, seq2) {|s| s.empty?}
175
+ diff.reject! {|c| c.empty?}
176
+
177
+ Haml::Util.paths(diff).map {|p| p.flatten}
178
+ end
179
+
180
+ def chunks(seq1, seq2)
181
+ chunk1 = []
182
+ chunk1 << seq1.shift until yield seq1
183
+ chunk2 = []
184
+ chunk2 << seq2.shift until yield seq2
185
+ return [] if chunk1.empty? && chunk2.empty?
186
+ return [chunk2] if chunk1.empty?
187
+ return [chunk1] if chunk2.empty?
188
+ [chunk1 + chunk2, chunk2 + chunk1]
195
189
  end
196
190
 
197
- def seq_split(seq)
191
+ def group_selectors(seq)
192
+ newseq = []
198
193
  tail = seq.dup
199
- head = []
200
- begin
201
- head << tail.shift
202
- end while !tail.empty? && head.last.is_a?(String) || tail.first.is_a?(String)
203
- return head, tail
194
+ until tail.empty?
195
+ head = []
196
+ begin
197
+ head << tail.shift
198
+ end while !tail.empty? && head.last.is_a?(String) || tail.first.is_a?(String)
199
+ newseq << head
200
+ end
201
+ return newseq
204
202
  end
205
203
 
206
204
  def unify_heads(sseq1, sseq2)
@@ -208,6 +206,14 @@ module Sass
208
206
  unified = sseq1.last.unify(sseq2.last.members) unless sseq1.last.is_a?(String) || sseq2.last.is_a?(String)
209
207
  sseq1[0...-1] << unified if unified
210
208
  end
209
+
210
+ def _hash
211
+ members.reject {|m| m == "\n"}.hash
212
+ end
213
+
214
+ def _eql?(other)
215
+ other.members.reject {|m| m == "\n"}.eql?(self.members.reject {|m| m == "\n"})
216
+ end
211
217
  end
212
218
  end
213
219
  end
@@ -41,7 +41,7 @@ module Sass
41
41
  #
42
42
  # @return [Fixnum]
43
43
  def hash
44
- to_a.hash
44
+ @_hash ||= to_a.hash
45
45
  end
46
46
 
47
47
  # Checks equality between this and another object.
@@ -53,8 +53,9 @@ module Sass
53
53
  # @param other [Object] The object to test equality against
54
54
  # @return [Boolean] Whether or not this is equal to `other`
55
55
  def eql?(other)
56
- other.class == self.class && other.to_a.eql?(to_a)
56
+ other.class == self.class && other.hash == self.hash && other.to_a.eql?(to_a)
57
57
  end
58
+ alias_method :==, :eql?
58
59
 
59
60
  # Unifies this selector with a {SimpleSequence}'s {SimpleSequence#members members array},
60
61
  # returning another `SimpleSequence` members array
@@ -122,20 +122,14 @@ module Sass
122
122
  members.map {|m| m.inspect}.join
123
123
  end
124
124
 
125
- # Returns a hash code for this sequence.
126
- #
127
- # @return [Fixnum]
128
- def hash
125
+ private
126
+
127
+ def _hash
129
128
  [base, Haml::Util.set_hash(rest)].hash
130
129
  end
131
130
 
132
- # Checks equality between this and another object.
133
- #
134
- # @param other [Object] The object to test equality against
135
- # @return [Boolean] Whether or not this is equal to `other`
136
- def eql?(other)
137
- other.class == self.class && other.base.eql?(self.base) &&
138
- Haml::Util.set_eql?(other.rest, self.rest)
131
+ def _eql?(other)
132
+ other.base.eql?(self.base) && Haml::Util.set_eql?(other.rest, self.rest)
139
133
  end
140
134
  end
141
135
  end
@@ -100,6 +100,26 @@ class UtilTest < Test::Unit::TestCase
100
100
  assert_equal([[1, 2, 3]], paths([[1], [2], [3]]))
101
101
  end
102
102
 
103
+ def test_lcs
104
+ assert_equal([1, 2, 3], lcs([1, 2, 3], [1, 2, 3]))
105
+ assert_equal([], lcs([], [1, 2, 3]))
106
+ assert_equal([], lcs([1, 2, 3], []))
107
+ assert_equal([1, 2, 3], lcs([5, 1, 4, 2, 3, 17], [0, 0, 1, 2, 6, 3]))
108
+
109
+ assert_equal([1], lcs([1, 2, 3, 4], [4, 3, 2, 1]))
110
+ assert_equal([1, 2], lcs([1, 2, 3, 4], [3, 4, 1, 2]))
111
+ end
112
+
113
+ def test_lcs_all
114
+ assert_equal(Set[[1, 2, 3]], lcs_all([1, 2, 3], [1, 2, 3]))
115
+ assert_equal(Set[[]], lcs_all([], [1, 2, 3]))
116
+ assert_equal(Set[[]], lcs_all([1, 2, 3], []))
117
+ assert_equal(Set[[1, 2, 3]], lcs_all([5, 1, 4, 2, 3, 17], [0, 0, 1, 2, 6, 3]))
118
+
119
+ assert_equal(Set[[1], [2], [3], [4]], lcs_all([1, 2, 3, 4], [4, 3, 2, 1]))
120
+ assert_equal(Set[[1, 2], [3, 4]], lcs_all([1, 2, 3, 4], [3, 4, 1, 2]))
121
+ end
122
+
103
123
  def test_silence_warnings
104
124
  old_stderr, $stderr = $stderr, StringIO.new
105
125
  warn "Out"
@@ -974,34 +974,53 @@ foo bar {@extend .foo}
974
974
  SCSS
975
975
  end
976
976
 
977
- def test_nested_extender_interleaves_parents_with_unification
977
+ def test_nested_extender_alternates_parents
978
978
  assert_equal <<CSS, render(<<SCSS)
979
- .baz .foo, .baz foo bar, foo.baz bar, foo .baz bar {
979
+ .baz .bip .foo, .baz .bip foo .grank bar, foo .grank .baz .bip bar {
980
980
  a: b; }
981
981
  CSS
982
- .baz .foo {a: b}
983
- foo bar {@extend .foo}
982
+ .baz .bip .foo {a: b}
983
+ foo .grank bar {@extend .foo}
984
984
  SCSS
985
985
  end
986
986
 
987
- def test_nested_extender_interleaves_parents_with_aborted_unification
987
+ def test_nested_extender_unifies_identical_parents
988
988
  assert_equal <<CSS, render(<<SCSS)
989
- baz .foo, baz foo bar, foo baz bar {
989
+ .baz .bip .foo, .baz .bip bar {
990
990
  a: b; }
991
991
  CSS
992
- baz .foo {a: b}
993
- foo bar {@extend .foo}
992
+ .baz .bip .foo {a: b}
993
+ .baz .bip bar {@extend .foo}
994
+ SCSS
995
+ end
996
+
997
+ def test_nested_extender_unifies_common_substring
998
+ assert_equal <<CSS, render(<<SCSS)
999
+ .baz .bip .bap .bink .foo, .baz .brat .bip .bap .bink bar, .brat .baz .bip .bap .bink bar {
1000
+ a: b; }
1001
+ CSS
1002
+ .baz .bip .bap .bink .foo {a: b}
1003
+ .brat .bip .bap bar {@extend .foo}
1004
+ SCSS
1005
+ end
1006
+
1007
+ def test_nested_extender_unifies_common_subseq
1008
+ assert_equal <<CSS, render(<<SCSS)
1009
+ .a .x .b .y .foo, .a .x .n .b .y .m bar, .a .n .x .b .y .m bar, .a .x .n .b .m .y bar, .a .n .x .b .m .y bar {
1010
+ a: b; }
1011
+ CSS
1012
+ .a .x .b .y .foo {a: b}
1013
+ .a .n .b .m bar {@extend .foo}
994
1014
  SCSS
995
1015
  end
996
1016
 
997
- def test_nested_extender_with_lots_of_interleaving
998
- # Please, never ever do this in a real stylesheet
1017
+ def test_nested_extender_chooses_first_subseq
999
1018
  assert_equal <<CSS, render(<<SCSS)
1000
- .foo .bar .baz .bang, .foo .bar .baz .foo2 .bar2 .baz2 .bang2, .foo .bar .foo2.baz .bar2 .baz2 .bang2, .foo .bar .foo2 .baz .bar2 .baz2 .bang2, .foo .bar .foo2 .bar2.baz .baz2 .bang2, .foo .bar .foo2 .bar2 .baz .baz2 .bang2, .foo .bar .foo2 .bar2 .baz2.baz .bang2, .foo .bar .foo2 .bar2 .baz2 .baz .bang2, .foo .foo2.bar .baz .bar2 .baz2 .bang2, .foo .foo2.bar .bar2.baz .baz2 .bang2, .foo .foo2.bar .bar2 .baz .baz2 .bang2, .foo .foo2.bar .bar2 .baz2.baz .bang2, .foo .foo2.bar .bar2 .baz2 .baz .bang2, .foo .foo2 .bar .baz .bar2 .baz2 .bang2, .foo .foo2 .bar .bar2.baz .baz2 .bang2, .foo .foo2 .bar .bar2 .baz .baz2 .bang2, .foo .foo2 .bar .bar2 .baz2.baz .bang2, .foo .foo2 .bar .bar2 .baz2 .baz .bang2, .foo .foo2 .bar2.bar .baz .baz2 .bang2, .foo .foo2 .bar2.bar .baz2.baz .bang2, .foo .foo2 .bar2.bar .baz2 .baz .bang2, .foo .foo2 .bar2 .bar .baz .baz2 .bang2, .foo .foo2 .bar2 .bar .baz2.baz .bang2, .foo .foo2 .bar2 .bar .baz2 .baz .bang2, .foo .foo2 .bar2 .baz2.bar .baz .bang2, .foo .foo2 .bar2 .baz2 .bar .baz .bang2, .foo2.foo .bar .baz .bar2 .baz2 .bang2, .foo2.foo .bar .bar2.baz .baz2 .bang2, .foo2.foo .bar .bar2 .baz .baz2 .bang2, .foo2.foo .bar .bar2 .baz2.baz .bang2, .foo2.foo .bar .bar2 .baz2 .baz .bang2, .foo2.foo .bar2.bar .baz .baz2 .bang2, .foo2.foo .bar2.bar .baz2.baz .bang2, .foo2.foo .bar2.bar .baz2 .baz .bang2, .foo2.foo .bar2 .bar .baz .baz2 .bang2, .foo2.foo .bar2 .bar .baz2.baz .bang2, .foo2.foo .bar2 .bar .baz2 .baz .bang2, .foo2.foo .bar2 .baz2.bar .baz .bang2, .foo2.foo .bar2 .baz2 .bar .baz .bang2, .foo2 .foo .bar .baz .bar2 .baz2 .bang2, .foo2 .foo .bar .bar2.baz .baz2 .bang2, .foo2 .foo .bar .bar2 .baz .baz2 .bang2, .foo2 .foo .bar .bar2 .baz2.baz .bang2, .foo2 .foo .bar .bar2 .baz2 .baz .bang2, .foo2 .foo .bar2.bar .baz .baz2 .bang2, .foo2 .foo .bar2.bar .baz2.baz .bang2, .foo2 .foo .bar2.bar .baz2 .baz .bang2, .foo2 .foo .bar2 .bar .baz .baz2 .bang2, .foo2 .foo .bar2 .bar .baz2.baz .bang2, .foo2 .foo .bar2 .bar .baz2 .baz .bang2, .foo2 .foo .bar2 .baz2.bar .baz .bang2, .foo2 .foo .bar2 .baz2 .bar .baz .bang2, .foo2 .bar2.foo .bar .baz .baz2 .bang2, .foo2 .bar2.foo .bar .baz2.baz .bang2, .foo2 .bar2.foo .bar .baz2 .baz .bang2, .foo2 .bar2.foo .baz2.bar .baz .bang2, .foo2 .bar2.foo .baz2 .bar .baz .bang2, .foo2 .bar2 .foo .bar .baz .baz2 .bang2, .foo2 .bar2 .foo .bar .baz2.baz .bang2, .foo2 .bar2 .foo .bar .baz2 .baz .bang2, .foo2 .bar2 .foo .baz2.bar .baz .bang2, .foo2 .bar2 .foo .baz2 .bar .baz .bang2, .foo2 .bar2 .baz2.foo .bar .baz .bang2, .foo2 .bar2 .baz2 .foo .bar .baz .bang2 {
1019
+ .a .b .c .d .foo, .a .b .c .d .a .b .bar {
1001
1020
  a: b; }
1002
1021
  CSS
1003
- .foo .bar .baz .bang {a: b}
1004
- .foo2 .bar2 .baz2 .bang2 {@extend .bang}
1022
+ .a .b .c .d .foo {a: b}
1023
+ .c .d .a .b .bar {@extend .foo}
1005
1024
  SCSS
1006
1025
  end
1007
1026
 
@@ -1015,33 +1034,31 @@ foo > bar {@extend .foo}
1015
1034
  SCSS
1016
1035
  end
1017
1036
 
1018
- def test_nested_extender_with_descendant_and_child_selector
1037
+ def test_nested_extender_with_early_child_selectors_doesnt_subseq_them
1019
1038
  assert_equal <<CSS, render(<<SCSS)
1020
- .baz .foo, .baz bang foo > bar, bang.baz foo > bar, bang .baz foo > bar {
1039
+ .bip > .bap .foo, .bip > .bap .grip > .bap .bar, .grip > .bap .bip > .bap .bar {
1021
1040
  a: b; }
1022
1041
  CSS
1023
- .baz .foo {a: b}
1024
- bang foo > bar {@extend .foo}
1042
+ .bip > .bap .foo {a: b}
1043
+ .grip > .bap .bar {@extend .foo}
1025
1044
  SCSS
1026
- end
1027
1045
 
1028
- def test_nested_extender_with_child_selector_unifies
1029
1046
  assert_equal <<CSS, render(<<SCSS)
1030
- .baz.foo, foo > bar.baz {
1047
+ .bap > .bip .foo, .bap > .bip .bap > .grip .bar, .bap > .grip .bap > .bip .bar {
1031
1048
  a: b; }
1032
1049
  CSS
1033
- .baz.foo {a: b}
1034
- foo > bar {@extend .foo}
1050
+ .bap > .bip .foo {a: b}
1051
+ .bap > .grip .bar {@extend .foo}
1035
1052
  SCSS
1036
1053
  end
1037
1054
 
1038
- def test_nested_extender_with_child_selector_and_more
1055
+ def test_nested_extender_with_child_selector_unifies
1039
1056
  assert_equal <<CSS, render(<<SCSS)
1040
- .foo .bar, .foo foo > bar baz, foo > bar.foo baz, foo > bar .foo baz {
1057
+ .baz.foo, foo > bar.baz {
1041
1058
  a: b; }
1042
1059
  CSS
1043
- .foo .bar {a: b}
1044
- foo > bar baz {@extend .bar}
1060
+ .baz.foo {a: b}
1061
+ foo > bar {@extend .foo}
1045
1062
  SCSS
1046
1063
  end
1047
1064
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haml-edge
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.244
4
+ version: 2.3.245
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-05-05 00:00:00 -04:00
13
+ date: 2010-05-07 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -84,11 +84,12 @@ files:
84
84
  - lib/sass/files.rb
85
85
  - lib/sass/plugin.rb
86
86
  - lib/sass/repl.rb
87
+ - lib/sass/script.rb
87
88
  - lib/sass/plugin/merb.rb
88
89
  - lib/sass/plugin/rack.rb
89
90
  - lib/sass/plugin/rails.rb
90
91
  - lib/sass/plugin/staleness_checker.rb
91
- - lib/sass/script.rb
92
+ - lib/sass/callbacks.rb
92
93
  - lib/sass/less.rb
93
94
  - lib/sass/script/bool.rb
94
95
  - lib/sass/script/color.rb
@@ -107,7 +108,6 @@ files:
107
108
  - lib/sass/script/css_parser.rb
108
109
  - lib/sass/script/interpolation.rb
109
110
  - lib/sass/script/string_interpolation.rb
110
- - lib/sass/callbacks.rb
111
111
  - lib/sass/scss.rb
112
112
  - lib/sass/scss/css_parser.rb
113
113
  - lib/sass/scss/parser.rb
@@ -116,6 +116,7 @@ files:
116
116
  - lib/sass/scss/script_lexer.rb
117
117
  - lib/sass/scss/script_parser.rb
118
118
  - lib/sass/scss/static_parser.rb
119
+ - lib/sass/selector.rb
119
120
  - lib/sass/selector/abstract_sequence.rb
120
121
  - lib/sass/selector/comma_sequence.rb
121
122
  - lib/sass/selector/sequence.rb
@@ -137,7 +138,6 @@ files:
137
138
  - lib/sass/tree/extend_node.rb
138
139
  - lib/sass/tree/root_node.rb
139
140
  - lib/sass/tree/warn_node.rb
140
- - lib/sass/selector.rb
141
141
  - vendor/fssm/LICENSE
142
142
  - vendor/fssm/README.markdown
143
143
  - vendor/fssm/Rakefile
@@ -248,6 +248,7 @@ files:
248
248
  - test/sass/plugin_test.rb
249
249
  - test/sass/script_test.rb
250
250
  - test/sass/callbacks_test.rb
251
+ - test/sass/conversion_test.rb
251
252
  - test/sass/data/hsl-rgb.txt
252
253
  - test/sass/more_results/more1.css
253
254
  - test/sass/more_results/more1_with_line_comments.css
@@ -277,12 +278,8 @@ files:
277
278
  - test/sass/results/units.css
278
279
  - test/sass/results/warn.css
279
280
  - test/sass/results/warn_imported.css
280
- - test/sass/conversion_test.rb
281
281
  - test/sass/less_conversion_test.rb
282
- - test/sass/scss/css_test.rb
283
- - test/sass/scss/rx_test.rb
284
- - test/sass/scss/scss_test.rb
285
- - test/sass/scss/test_helper.rb
282
+ - test/sass/script_conversion_test.rb
286
283
  - test/sass/templates/_partial.sass
287
284
  - test/sass/templates/alt.sass
288
285
  - test/sass/templates/basic.sass
@@ -299,9 +296,9 @@ files:
299
296
  - test/sass/templates/parent_ref.sass
300
297
  - test/sass/templates/script.sass
301
298
  - test/sass/templates/units.sass
299
+ - test/sass/templates/bork3.sass
302
300
  - test/sass/templates/multiline.sass
303
301
  - test/sass/templates/nested.sass
304
- - test/sass/templates/bork3.sass
305
302
  - test/sass/templates/bork4.sass
306
303
  - test/sass/templates/importee.less
307
304
  - test/sass/templates/mixin_bork.sass
@@ -311,14 +308,17 @@ files:
311
308
  - test/sass/templates/nested_bork4.sass
312
309
  - test/sass/templates/nested_mixin_bork.sass
313
310
  - test/sass/templates/options.sass
311
+ - test/sass/templates/scss_import.scss
314
312
  - test/sass/templates/subdir/nested_subdir/_nested_partial.sass
315
313
  - test/sass/templates/subdir/nested_subdir/nested_subdir.sass
316
314
  - test/sass/templates/subdir/subdir.sass
317
- - test/sass/templates/scss_import.scss
318
315
  - test/sass/templates/scss_importee.scss
319
316
  - test/sass/templates/warn.sass
320
317
  - test/sass/templates/warn_imported.sass
321
- - test/sass/script_conversion_test.rb
318
+ - test/sass/scss/css_test.rb
319
+ - test/sass/scss/rx_test.rb
320
+ - test/sass/scss/scss_test.rb
321
+ - test/sass/scss/test_helper.rb
322
322
  - test/test_helper.rb
323
323
  - extra/haml-mode.el
324
324
  - extra/sass-mode.el
@@ -383,10 +383,10 @@ test_files:
383
383
  - test/sass/plugin_test.rb
384
384
  - test/sass/script_test.rb
385
385
  - test/sass/callbacks_test.rb
386
- - test/sass/extend_test.rb
387
386
  - test/sass/conversion_test.rb
387
+ - test/sass/extend_test.rb
388
388
  - test/sass/less_conversion_test.rb
389
+ - test/sass/script_conversion_test.rb
389
390
  - test/sass/scss/css_test.rb
390
391
  - test/sass/scss/rx_test.rb
391
392
  - test/sass/scss/scss_test.rb
392
- - test/sass/script_conversion_test.rb