sass 3.2.0.alpha.91 → 3.2.0.alpha.93
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/REVISION +1 -1
- data/VERSION +1 -1
- data/lib/sass/media.rb +10 -14
- data/lib/sass/scss/parser.rb +3 -5
- data/test/sass/conversion_test.rb +3 -3
- data/test/sass/engine_test.rb +4 -4
- data/test/sass/scss/scss_test.rb +3 -3
- metadata +6 -6
data/REVISION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
f19a88c02e1ac7a174ad2ada5cab276a5084fb2e
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.2.0.alpha.
|
1
|
+
3.2.0.alpha.93
|
data/lib/sass/media.rb
CHANGED
@@ -171,9 +171,9 @@ module Sass::Media
|
|
171
171
|
# @return [String]
|
172
172
|
def to_src(options)
|
173
173
|
src = ''
|
174
|
-
src << Sass::Media.
|
174
|
+
src << Sass::Media._interp_to_src(modifier, options)
|
175
175
|
src << ' ' unless modifier.empty?
|
176
|
-
src << Sass::Media.
|
176
|
+
src << Sass::Media._interp_to_src(type, options)
|
177
177
|
src << ' and ' unless type.empty? || expressions.empty?
|
178
178
|
src << expressions.map {|e| e.to_src(options)}.join(' and ')
|
179
179
|
src
|
@@ -205,7 +205,7 @@ module Sass::Media
|
|
205
205
|
class Expression
|
206
206
|
# The name of the feature being queried for.
|
207
207
|
#
|
208
|
-
# @return [
|
208
|
+
# @return [Sass::Script::Node]
|
209
209
|
attr_accessor :name
|
210
210
|
|
211
211
|
# The name of the feature after any SassScript has been resolved.
|
@@ -225,7 +225,7 @@ module Sass::Media
|
|
225
225
|
# @return [String]
|
226
226
|
attr_accessor :resolved_value
|
227
227
|
|
228
|
-
# @param name [
|
228
|
+
# @param name [Sass::Script::Node] See \{#name}
|
229
229
|
# @param value [Sass::Script::Node] See \{#value}
|
230
230
|
def initialize(name, value)
|
231
231
|
@name = name
|
@@ -239,7 +239,7 @@ module Sass::Media
|
|
239
239
|
# An interpolation array to perform.
|
240
240
|
# @yieldreturn [String] The interpolated value.
|
241
241
|
def perform
|
242
|
-
@resolved_name = yield name
|
242
|
+
@resolved_name = yield name ? [name] : []
|
243
243
|
@resolved_value = yield value ? [value] : []
|
244
244
|
end
|
245
245
|
|
@@ -260,7 +260,7 @@ module Sass::Media
|
|
260
260
|
# @return [String]
|
261
261
|
def to_src(options)
|
262
262
|
src = '('
|
263
|
-
src <<
|
263
|
+
src << name.to_sass(options)
|
264
264
|
src << ': ' << value.to_sass(options) if value
|
265
265
|
src << ')'
|
266
266
|
src
|
@@ -270,28 +270,24 @@ module Sass::Media
|
|
270
270
|
#
|
271
271
|
# @return [Expression]
|
272
272
|
def deep_copy
|
273
|
-
Expression.new(
|
274
|
-
name.map {|c| c.is_a?(Sass::Script::Node) ? c.deep_copy : c},
|
275
|
-
value && value.deep_copy)
|
273
|
+
Expression.new(name.deep_copy, value && value.deep_copy)
|
276
274
|
end
|
277
275
|
|
278
276
|
# Sets the options hash for the script nodes in the expression.
|
279
277
|
#
|
280
278
|
# @param options [{Symbol => Object}] The options has to set.
|
281
279
|
def options=(options)
|
282
|
-
name.
|
280
|
+
name.options = options
|
283
281
|
value.options = options if value
|
284
282
|
end
|
285
283
|
end
|
286
284
|
|
287
|
-
# Converts an interpolation array
|
285
|
+
# Converts an interpolation array to source.
|
288
286
|
#
|
289
287
|
# @param [Array<String, Sass::Script::Node>] The interpolation array to convert.
|
290
288
|
# @param options [{Symbol => Object}] An options hash (see {Sass::CSS#initialize}).
|
291
289
|
# @return [String]
|
292
|
-
def self.
|
293
|
-
interp = interp.reject {|v| v.is_a?(String) && v.empty?}
|
294
|
-
return interp[0].to_sass(options) if interp.length == 1 && interp[0].is_a?(Sass::Script::Variable)
|
290
|
+
def self._interp_to_src(interp, options)
|
295
291
|
interp.map do |r|
|
296
292
|
next r if r.is_a?(String)
|
297
293
|
"\#{#{r.to_sass(options)}}"
|
data/lib/sass/scss/parser.rb
CHANGED
@@ -344,9 +344,9 @@ module Sass
|
|
344
344
|
end
|
345
345
|
|
346
346
|
def media_query
|
347
|
-
if ident1 =
|
347
|
+
if ident1 = interp_ident
|
348
348
|
ss
|
349
|
-
ident2 =
|
349
|
+
ident2 = interp_ident
|
350
350
|
ss
|
351
351
|
if ident2 && ident2.length == 1 && ident2[0].is_a?(String) && ident2[0].downcase == 'and'
|
352
352
|
query = Sass::Media::Query.new([], ident1, [])
|
@@ -380,9 +380,7 @@ module Sass
|
|
380
380
|
def media_expr
|
381
381
|
return unless tok(/\(/)
|
382
382
|
ss
|
383
|
-
|
384
|
-
name = expr!(:interp_ident_or_var)
|
385
|
-
ss
|
383
|
+
name = sass_script(:parse)
|
386
384
|
|
387
385
|
if tok(/:/)
|
388
386
|
ss; value = sass_script(:parse)
|
@@ -1163,14 +1163,14 @@ $baz: 12;
|
|
1163
1163
|
SCSS
|
1164
1164
|
end
|
1165
1165
|
|
1166
|
-
def
|
1166
|
+
def test_media_with_expressions
|
1167
1167
|
assert_renders <<SASS, <<SCSS
|
1168
1168
|
$media1: screen
|
1169
1169
|
$media2: print
|
1170
1170
|
$var: -webkit-min-device-pixel-ratio
|
1171
1171
|
$val: 20
|
1172
1172
|
|
1173
|
-
@media $media1 and ($var: $val), only $media2
|
1173
|
+
@media \#{$media1} and ($var + "-foo": $val + 5), only \#{$media2}
|
1174
1174
|
a: b
|
1175
1175
|
SASS
|
1176
1176
|
$media1: screen;
|
@@ -1178,7 +1178,7 @@ $media2: print;
|
|
1178
1178
|
$var: -webkit-min-device-pixel-ratio;
|
1179
1179
|
$val: 20;
|
1180
1180
|
|
1181
|
-
@media $media1 and ($var: $val), only $media2 {
|
1181
|
+
@media \#{$media1} and ($var + "-foo": $val + 5), only \#{$media2} {
|
1182
1182
|
a: b;
|
1183
1183
|
}
|
1184
1184
|
SCSS
|
data/test/sass/engine_test.rb
CHANGED
@@ -634,12 +634,12 @@ SASS
|
|
634
634
|
|
635
635
|
def test_import_with_dynamic_media_query
|
636
636
|
assert_equal(<<CSS, render(<<SASS))
|
637
|
-
@import "foo" print and (-webkit-min-device-pixel-ratio:
|
637
|
+
@import "foo" print and (-webkit-min-device-pixel-ratio-foo: 25);
|
638
638
|
CSS
|
639
639
|
$media: print
|
640
640
|
$key: -webkit-min-device-pixel-ratio
|
641
641
|
$value: 20
|
642
|
-
@import "foo" $media and ($key: $value)
|
642
|
+
@import "foo" \#{$media} and ($key + "-foo": $value + 5)
|
643
643
|
SASS
|
644
644
|
end
|
645
645
|
|
@@ -2227,14 +2227,14 @@ SASS
|
|
2227
2227
|
|
2228
2228
|
def test_variables_in_media
|
2229
2229
|
assert_equal <<CSS, render(<<SASS)
|
2230
|
-
@media screen and (-webkit-min-device-pixel-ratio:
|
2230
|
+
@media screen and (-webkit-min-device-pixel-ratio-foo: 25), only print {
|
2231
2231
|
a: b; }
|
2232
2232
|
CSS
|
2233
2233
|
$media1: screen
|
2234
2234
|
$media2: print
|
2235
2235
|
$var: -webkit-min-device-pixel-ratio
|
2236
2236
|
$val: 20
|
2237
|
-
@media $media1 and ($var: $val), only $media2
|
2237
|
+
@media \#{$media1} and ($var + "-foo": $val + 5), only \#{$media2}
|
2238
2238
|
a: b
|
2239
2239
|
SASS
|
2240
2240
|
end
|
data/test/sass/scss/scss_test.rb
CHANGED
@@ -276,12 +276,12 @@ SCSS
|
|
276
276
|
|
277
277
|
def test_dynamic_media_import
|
278
278
|
assert_equal(<<CSS, render(<<SCSS))
|
279
|
-
@import "foo" print and (-webkit-min-device-pixel-ratio:
|
279
|
+
@import "foo" print and (-webkit-min-device-pixel-ratio-foo: 25);
|
280
280
|
CSS
|
281
281
|
$media: print;
|
282
282
|
$key: -webkit-min-device-pixel-ratio;
|
283
283
|
$value: 20;
|
284
|
-
@import "foo" $media and ($key: $value);
|
284
|
+
@import "foo" \#{$media} and ($key + "-foo": $value + 5);
|
285
285
|
SCSS
|
286
286
|
end
|
287
287
|
|
@@ -914,7 +914,7 @@ $media1: screen;
|
|
914
914
|
$media2: print;
|
915
915
|
$var: -webkit-min-device-pixel-ratio;
|
916
916
|
$val: 20;
|
917
|
-
@media $media1 and ($var: $val), only $media2 {a: b}
|
917
|
+
@media \#{$media1} and ($var: $val), only \#{$media2} {a: b}
|
918
918
|
SCSS
|
919
919
|
|
920
920
|
assert_equal <<CSS, render(<<SCSS)
|
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: 592303015
|
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
|
+
- 93
|
12
|
+
version: 3.2.0.alpha.93
|
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-03-
|
22
|
+
date: 2012-03-09 00:00:00 -05:00
|
23
23
|
default_executable:
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|
@@ -150,9 +150,7 @@ files:
|
|
150
150
|
- lib/sass/tree/return_node.rb
|
151
151
|
- lib/sass/tree/root_node.rb
|
152
152
|
- lib/sass/tree/content_node.rb
|
153
|
-
- lib/sass/tree/css_import_node.rb
|
154
153
|
- lib/sass/tree/variable_node.rb
|
155
|
-
- lib/sass/tree/warn_node.rb
|
156
154
|
- lib/sass/tree/visitors/base.rb
|
157
155
|
- lib/sass/tree/visitors/check_nesting.rb
|
158
156
|
- lib/sass/tree/visitors/convert.rb
|
@@ -161,7 +159,9 @@ files:
|
|
161
159
|
- lib/sass/tree/visitors/perform.rb
|
162
160
|
- lib/sass/tree/visitors/set_options.rb
|
163
161
|
- lib/sass/tree/visitors/to_css.rb
|
162
|
+
- lib/sass/tree/warn_node.rb
|
164
163
|
- lib/sass/tree/while_node.rb
|
164
|
+
- lib/sass/tree/css_import_node.rb
|
165
165
|
- lib/sass/tree/trace_node.rb
|
166
166
|
- lib/sass/media.rb
|
167
167
|
- lib/sass/util/multibyte_string_scanner.rb
|