sass 3.4.10 → 3.4.11

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 858f856d5dae7313a376b36544bd8362b7c35a1e
4
- data.tar.gz: 5b3ba1f7bea6c1c1cbb4be0edf313089013ffdf5
3
+ metadata.gz: 5b356808a261bfc58ed1ea2a65e975f5b64d8048
4
+ data.tar.gz: c2f0bc6dbd4e8332eed0e0f6e60dad6a79d47797
5
5
  SHA512:
6
- metadata.gz: cac4a3b38ad8bfc7eb89c2f8c31e3dc48004a9758efdca37166e9b38368eb44e84f9427812934dc92d40b53e163163d40821495b2607e915f46b583b8e79fb57
7
- data.tar.gz: 41314e4a85cff7ce94850c0644cfde46eafa329042803fb5e5c4c9b042adf5f06bdbb0597a4406bcd0f2eac398610dfa57af9ad1818482aea8add131ff471704
6
+ metadata.gz: c0631122d887b7d410c5fd38dcedd9487ae78e1d22e2f7a5a4be4557d9c1ad40ab55643e590eff2b23a3b3dfecac61057086cfe926015d09e60ee8d1e7abbadb
7
+ data.tar.gz: 8208ef88dc5a7a6b13493c8a00542587419525fdf980fcd616ff19ec83b39388e1322c5f21f61147eb9f2cd059f5659acf3476ae552abcc5d290cc9563d6caf3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.4.10
1
+ 3.4.11
@@ -1 +1 @@
1
- 17 January 2015 03:54:27 UTC
1
+ 31 January 2015 02:49:50 UTC
@@ -42,6 +42,7 @@ END
42
42
  if @args.size == 1
43
43
  @args = split_colon_path(@args.first)
44
44
  else
45
+ @fake_update = true
45
46
  @options[:update] = true
46
47
  end
47
48
  end
@@ -312,6 +313,16 @@ MSG
312
313
 
313
314
  dirs, files = @args.map {|name| split_colon_path(name)}.
314
315
  partition {|i, _| File.directory? i}
316
+
317
+ if @fake_update && !dirs.empty?
318
+ # Issue 1602.
319
+ Sass::Util.sass_warn <<WARNING.strip
320
+ DEPRECATION WARNING: Compiling directories without --update or --watch is
321
+ deprecated and won't work in future versions of Sass. Instead use:
322
+ #{@default_syntax} --update #{@args}
323
+ WARNING
324
+ end
325
+
315
326
  files.map! do |from, to|
316
327
  to ||= from.gsub(/\.[^.]*?$/, '.css')
317
328
  sourcemap = Sass::Util.sourcemap_name(to) if @options[:sourcemap]
@@ -1398,9 +1398,10 @@ module Sass::Script
1398
1398
  # @raise [ArgumentError] if `$string` isn't a string
1399
1399
  def unquote(string)
1400
1400
  unless string.is_a?(Sass::Script::Value::String)
1401
- Sass::Util.sass_warn(<<MESSAGE)
1401
+ Sass::Util.sass_warn(<<MESSAGE.strip)
1402
1402
  DEPRECATION WARNING: Passing #{string.to_sass}, a non-string value, to unquote()
1403
1403
  will be an error in future versions of Sass.
1404
+ #{environment.stack.to_s.gsub(/^/, ' ' * 8)}
1404
1405
  MESSAGE
1405
1406
  return string
1406
1407
  end
@@ -32,7 +32,8 @@ module Sass::Script::Tree
32
32
  members = elements.map do |v|
33
33
  if v.is_a?(ListLiteral) && Sass::Script::Parser.precedence_of(v.separator) <= precedence ||
34
34
  separator == :space && v.is_a?(UnaryOperation) &&
35
- (v.operator == :minus || v.operator == :plus)
35
+ (v.operator == :minus || v.operator == :plus) ||
36
+ separator == :space && v.is_a?(Operation)
36
37
  "(#{v.to_sass(opts)})"
37
38
  else
38
39
  v.to_sass(opts)
@@ -133,9 +133,9 @@ module Sass
133
133
  end
134
134
 
135
135
  Sequence.new(members[0...-1] +
136
- [SimpleSequence.new(parent_sub + @members[1..-1], subject?)] +
136
+ [SimpleSequence.new(parent_sub + resolved_members[1..-1], subject?)] +
137
137
  [newline].compact)
138
- end)
138
+ end)
139
139
  end
140
140
 
141
141
  # Non-destructively extends this selector with the extensions specified in a hash
@@ -132,14 +132,15 @@ module Sass::Tree
132
132
  private
133
133
 
134
134
  def try_to_parse_non_interpolated_rules
135
- if @rule.all? {|t| t.kind_of?(String)}
136
- # We don't use real filename/line info because we don't have it yet.
137
- # When we get it, we'll set it on the parsed rules if possible.
138
- parser = Sass::SCSS::StaticParser.new(@rule.join.strip, nil, nil, 1)
139
- # rubocop:disable RescueModifier
140
- @parsed_rules = parser.parse_selector rescue nil
141
- # rubocop:enable RescueModifier
142
- end
135
+ @parsed_rules = nil
136
+ return unless @rule.all? {|t| t.kind_of?(String)}
137
+
138
+ # We don't use real filename/line info because we don't have it yet.
139
+ # When we get it, we'll set it on the parsed rules if possible.
140
+ parser = Sass::SCSS::StaticParser.new(@rule.join.strip, nil, nil, 1)
141
+ # rubocop:disable RescueModifier
142
+ @parsed_rules = parser.parse_selector rescue nil
143
+ # rubocop:enable RescueModifier
143
144
  end
144
145
  end
145
146
  end
@@ -1990,13 +1990,11 @@ foo
1990
1990
  ok: -$foo
1991
1991
  comma: 10px, -$foo
1992
1992
  needs-parens: 10px (-$foo)
1993
- no-parens: a 50px + 60px b
1994
1993
  SASS
1995
1994
  foo {
1996
1995
  ok: -$foo;
1997
1996
  comma: 10px, -$foo;
1998
1997
  needs-parens: 10px (-$foo);
1999
- no-parens: a 50px + 60px b;
2000
1998
  }
2001
1999
  SCSS
2002
2000
  end
@@ -2059,20 +2059,21 @@ SASS
2059
2059
  end
2060
2060
 
2061
2061
  def test_warn_with_imports
2062
+ prefix = Sass::Util.cleanpath(File.dirname(__FILE__)).to_s
2062
2063
  expected_warning = <<WARN
2063
2064
  WARNING: In the main file
2064
- on line 1 of #{File.dirname(__FILE__)}/templates/warn.sass
2065
+ on line 1 of #{prefix}/templates/warn.sass
2065
2066
 
2066
2067
  WARNING: Imported
2067
- on line 1 of #{File.dirname(__FILE__)}/templates/warn_imported.sass
2068
- from line 2 of #{File.dirname(__FILE__)}/templates/warn.sass
2068
+ on line 1 of #{prefix}/templates/warn_imported.sass
2069
+ from line 2 of #{prefix}/templates/warn.sass
2069
2070
 
2070
2071
  WARNING: In an imported mixin
2071
- on line 4 of #{File.dirname(__FILE__)}/templates/warn_imported.sass, in `emits-a-warning'
2072
- from line 3 of #{File.dirname(__FILE__)}/templates/warn.sass
2072
+ on line 4 of #{prefix}/templates/warn_imported.sass, in `emits-a-warning'
2073
+ from line 3 of #{prefix}/templates/warn.sass
2073
2074
  WARN
2074
2075
  assert_warning expected_warning do
2075
- renders_correctly "warn", :style => :compact, :load_paths => [File.dirname(__FILE__) + "/templates"]
2076
+ renders_correctly "warn", :style => :compact, :load_paths => ["#{prefix}/templates"]
2076
2077
  end
2077
2078
  end
2078
2079
 
@@ -2457,6 +2458,18 @@ SASS
2457
2458
 
2458
2459
  # Regression tests
2459
2460
 
2461
+ def test_interpolation_in_multiline_selector
2462
+ assert_equal(<<CSS, render(<<SASS))
2463
+ .foo,
2464
+ .bar {
2465
+ a: b; }
2466
+ CSS
2467
+ .foo,
2468
+ \#{".bar"}
2469
+ a: b
2470
+ SASS
2471
+ end
2472
+
2460
2473
  def test_list_separator_with_arg_list
2461
2474
  assert_equal(<<CSS, render(<<SASS))
2462
2475
  .test {
@@ -3287,7 +3300,8 @@ SASS
3287
3300
  end
3288
3301
 
3289
3302
  def filename(name, type)
3290
- File.dirname(__FILE__) + "/#{type == 'sass' ? 'templates' : 'results'}/#{name}.#{type}"
3303
+ path = File.dirname(__FILE__) + "/#{type == 'sass' ? 'templates' : 'results'}/#{name}.#{type}"
3304
+ Sass::Util.cleanpath(path).to_s
3291
3305
  end
3292
3306
 
3293
3307
  def sassc_path(template)
@@ -76,6 +76,26 @@ class SassScriptConversionTest < MiniTest::Test
76
76
  assert_renders "null"
77
77
  end
78
78
 
79
+ def test_space_list
80
+ assert_renders "foo bar baz"
81
+ assert_renders "foo (bar baz) bip"
82
+ assert_renders "foo (bar, baz) bip"
83
+ end
84
+
85
+ def test_comma_list
86
+ assert_renders "foo, bar, baz"
87
+ assert_renders "foo, (bar, baz), bip"
88
+ assert_renders "foo, bar baz, bip"
89
+ end
90
+
91
+ def test_space_list_adds_parens_for_clarity
92
+ assert_renders "(1 + 1) (2 / 4) (3 * 5)"
93
+ end
94
+
95
+ def test_comma_list_doesnt_add_parens
96
+ assert_renders "1 + 1, 2 / 4, 3 * 5"
97
+ end
98
+
79
99
  def test_empty_list
80
100
  assert_renders "()"
81
101
  end
@@ -221,8 +241,8 @@ RUBY
221
241
  assert_renders "$foo or ($bar $baz)"
222
242
  assert_renders "($foo $bar) or $baz"
223
243
 
224
- assert_equal "$foo $bar or $baz", render("$foo ($bar or $baz)")
225
- assert_equal "$foo or $bar $baz", render("($foo or $bar) $baz")
244
+ assert_renders "$foo ($bar or $baz)"
245
+ assert_renders "($foo or $bar) $baz"
226
246
 
227
247
  assert_equal "$foo ($bar $baz)", render("$foo ($bar $baz)")
228
248
  assert_equal "($foo $bar) $baz", render("($foo $bar) $baz")
@@ -3693,6 +3693,31 @@ CSS
3693
3693
  SCSS
3694
3694
  end
3695
3695
 
3696
+ def test_parent_selector_in_and_out_of_function_pseudo_selector
3697
+ # Regression test for https://github.com/sass/sass/issues/1464#issuecomment-70352288
3698
+ assert_equal(<<CSS, render(<<SCSS))
3699
+ .a:not(.a-b) {
3700
+ x: y; }
3701
+ CSS
3702
+ .a {
3703
+ &:not(&-b) {
3704
+ x: y;
3705
+ }
3706
+ }
3707
+ SCSS
3708
+
3709
+ assert_equal(<<CSS, render(<<SCSS))
3710
+ .a:nth-child(2n of .a-b) {
3711
+ x: y; }
3712
+ CSS
3713
+ .a {
3714
+ &:nth-child(2n of &-b) {
3715
+ x: y;
3716
+ }
3717
+ }
3718
+ SCSS
3719
+ end
3720
+
3696
3721
  def test_attribute_selector_in_selector_pseudoclass
3697
3722
  # Even though this is plain CSS, it only failed when given to the SCSS
3698
3723
  # parser.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sass
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.10
4
+ version: 3.4.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Natalie Weizenbaum
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-01-17 00:00:00.000000000 Z
13
+ date: 2015-01-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: yard