sass 3.2.0.alpha.72 → 3.2.0.alpha.74
Sign up to get free protection for your applications and to get access to all the features.
- data/REVISION +1 -1
- data/VERSION +1 -1
- data/lib/sass/selector/simple_sequence.rb +2 -1
- data/lib/sass/util.rb +23 -0
- data/test/sass/extend_test.rb +11 -0
- data/test/sass/util_test.rb +7 -0
- metadata +5 -5
data/REVISION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
db51415a323a4fc284f38881ac839f3bbf5e7e31
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.2.0.alpha.
|
1
|
+
3.2.0.alpha.74
|
@@ -61,7 +61,8 @@ module Sass
|
|
61
61
|
# by extending this selector with `extends`.
|
62
62
|
# @see CommaSequence#do_extend
|
63
63
|
def do_extend(extends, seen = Set.new)
|
64
|
-
extends.get(members.to_set).map do |seq,
|
64
|
+
Sass::Util.group_by_to_a(extends.get(members.to_set)) {|seq, _| seq}.map do |seq, group|
|
65
|
+
sels = group.map {|_, s| s}.flatten
|
65
66
|
# If A {@extend B} and C {...},
|
66
67
|
# seq is A, sels is B, and self is C
|
67
68
|
|
data/lib/sass/util.rb
CHANGED
@@ -232,6 +232,29 @@ module Sass
|
|
232
232
|
return hash.sort_by {|k, v| k}
|
233
233
|
end
|
234
234
|
|
235
|
+
# Performs the equivalent of `enum.group_by.to_a`, but with a guaranteed
|
236
|
+
# order. Unlike [#hash_to_a], the resulting order isn't sorted key order;
|
237
|
+
# instead, it's the same order as `#group_by` has under Ruby 1.9 (key
|
238
|
+
# appearance order).
|
239
|
+
#
|
240
|
+
# @param enum [Enumerable]
|
241
|
+
# @return [Array<[Object, Array]>] An array of pairs.
|
242
|
+
def group_by_to_a(enum, &block)
|
243
|
+
return enum.group_by(&block).to_a unless ruby1_8?
|
244
|
+
order = {}
|
245
|
+
arr = []
|
246
|
+
enum.group_by do |e|
|
247
|
+
res = block[e]
|
248
|
+
unless order.include?(res)
|
249
|
+
order[res] = order.size
|
250
|
+
end
|
251
|
+
res
|
252
|
+
end.each do |key, vals|
|
253
|
+
arr[order[key]] = [key, vals]
|
254
|
+
end
|
255
|
+
arr
|
256
|
+
end
|
257
|
+
|
235
258
|
# Returns information about the caller of the previous method.
|
236
259
|
#
|
237
260
|
# @param entry [String] An entry in the `#caller` list, or a similarly formatted string
|
data/test/sass/extend_test.rb
CHANGED
@@ -890,6 +890,17 @@ CSS
|
|
890
890
|
SCSS
|
891
891
|
end
|
892
892
|
|
893
|
+
def test_redundant_selector_elimination
|
894
|
+
assert_equal <<CSS, render(<<SCSS)
|
895
|
+
.foo.bar, .x, .y {
|
896
|
+
a: b; }
|
897
|
+
CSS
|
898
|
+
.foo.bar {a: b}
|
899
|
+
.x {@extend .foo, .bar}
|
900
|
+
.y {@extend .foo, .bar}
|
901
|
+
SCSS
|
902
|
+
end
|
903
|
+
|
893
904
|
## Long Extendees
|
894
905
|
|
895
906
|
def test_long_extendee
|
data/test/sass/util_test.rb
CHANGED
@@ -120,6 +120,13 @@ class UtilTest < Test::Unit::TestCase
|
|
120
120
|
lcs([-5, 3, 2, 8], [-4, 1, 8]) {|a, b| (a - b).abs <= 1 && [a, b].max})
|
121
121
|
end
|
122
122
|
|
123
|
+
def test_group_by_to_a
|
124
|
+
assert_equal([[1, [1, 3, 5, 7]], [0, [2, 4, 6, 8]]],
|
125
|
+
group_by_to_a(1..8) {|i| i % 2})
|
126
|
+
assert_equal([[1, [1, 4, 7, 10]], [2, [2, 5, 8, 11]], [0, [3, 6, 9, 12]]],
|
127
|
+
group_by_to_a(1..12) {|i| i % 3})
|
128
|
+
end
|
129
|
+
|
123
130
|
def test_silence_warnings
|
124
131
|
old_stderr, $stderr = $stderr, StringIO.new
|
125
132
|
warn "Out"
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sass
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 592302985
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 2
|
9
9
|
- 0
|
10
10
|
- alpha
|
11
|
-
-
|
12
|
-
version: 3.2.0.alpha.
|
11
|
+
- 74
|
12
|
+
version: 3.2.0.alpha.74
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Nathan Weizenbaum
|
@@ -19,7 +19,7 @@ autorequire:
|
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
21
|
|
22
|
-
date: 2012-02-
|
22
|
+
date: 2012-02-17 00:00:00 -05:00
|
23
23
|
default_executable:
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|
@@ -151,7 +151,6 @@ files:
|
|
151
151
|
- lib/sass/tree/root_node.rb
|
152
152
|
- lib/sass/tree/rule_node.rb
|
153
153
|
- lib/sass/tree/content_node.rb
|
154
|
-
- lib/sass/tree/trace_node.rb
|
155
154
|
- lib/sass/tree/variable_node.rb
|
156
155
|
- lib/sass/tree/visitors/base.rb
|
157
156
|
- lib/sass/tree/visitors/check_nesting.rb
|
@@ -163,6 +162,7 @@ files:
|
|
163
162
|
- lib/sass/tree/visitors/to_css.rb
|
164
163
|
- lib/sass/tree/warn_node.rb
|
165
164
|
- lib/sass/tree/while_node.rb
|
165
|
+
- lib/sass/tree/trace_node.rb
|
166
166
|
- lib/sass/util.rb
|
167
167
|
- lib/sass/util/multibyte_string_scanner.rb
|
168
168
|
- lib/sass/util/subset_map.rb
|