sass 3.4.21 → 3.4.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +122 -0
  3. data/MIT-LICENSE +1 -1
  4. data/README.md +15 -9
  5. data/Rakefile +71 -18
  6. data/VERSION +1 -1
  7. data/VERSION_DATE +1 -1
  8. data/lib/sass.rb +7 -0
  9. data/lib/sass/callbacks.rb +2 -2
  10. data/lib/sass/css.rb +9 -8
  11. data/lib/sass/engine.rb +14 -8
  12. data/lib/sass/environment.rb +8 -1
  13. data/lib/sass/error.rb +5 -5
  14. data/lib/sass/exec/sass_convert.rb +14 -2
  15. data/lib/sass/exec/sass_scss.rb +2 -25
  16. data/lib/sass/features.rb +2 -2
  17. data/lib/sass/importers/filesystem.rb +6 -3
  18. data/lib/sass/plugin/compiler.rb +15 -7
  19. data/lib/sass/script/css_variable_warning.rb +52 -0
  20. data/lib/sass/script/functions.rb +5 -5
  21. data/lib/sass/script/lexer.rb +3 -1
  22. data/lib/sass/script/parser.rb +67 -15
  23. data/lib/sass/script/tree/funcall.rb +10 -3
  24. data/lib/sass/script/tree/node.rb +8 -0
  25. data/lib/sass/script/tree/operation.rb +7 -0
  26. data/lib/sass/script/value/base.rb +1 -0
  27. data/lib/sass/script/value/color.rb +6 -4
  28. data/lib/sass/script/value/helpers.rb +2 -2
  29. data/lib/sass/script/value/number.rb +5 -5
  30. data/lib/sass/scss.rb +0 -2
  31. data/lib/sass/scss/css_parser.rb +1 -2
  32. data/lib/sass/scss/parser.rb +20 -10
  33. data/lib/sass/scss/rx.rb +2 -2
  34. data/lib/sass/scss/static_parser.rb +11 -13
  35. data/lib/sass/selector/pseudo.rb +1 -1
  36. data/lib/sass/selector/sequence.rb +2 -2
  37. data/lib/sass/selector/simple_sequence.rb +4 -4
  38. data/lib/sass/stack.rb +2 -2
  39. data/lib/sass/tree/function_node.rb +1 -1
  40. data/lib/sass/tree/node.rb +2 -0
  41. data/lib/sass/tree/visitors/check_nesting.rb +2 -0
  42. data/lib/sass/tree/visitors/convert.rb +8 -7
  43. data/lib/sass/tree/visitors/perform.rb +4 -2
  44. data/lib/sass/tree/visitors/to_css.rb +10 -10
  45. data/lib/sass/util.rb +8 -7
  46. data/test/sass-spec.yml +3 -0
  47. data/test/sass/compiler_test.rb +1 -1
  48. data/test/sass/css_variable_test.rb +132 -0
  49. data/test/sass/exec_test.rb +10 -0
  50. data/test/sass/script_test.rb +1 -1
  51. data/test/sass/scss/scss_test.rb +10 -0
  52. metadata +79 -77
  53. data/lib/sass/scss/script_lexer.rb +0 -15
  54. data/lib/sass/scss/script_parser.rb +0 -25
@@ -4,6 +4,8 @@ class Sass::Tree::Visitors::CheckNesting < Sass::Tree::Visitors::Base
4
4
 
5
5
  def initialize
6
6
  @parents = []
7
+ @parent = nil
8
+ @current_mixin_def = nil
7
9
  end
8
10
 
9
11
  def visit(node)
@@ -18,6 +18,7 @@ class Sass::Tree::Visitors::Convert < Sass::Tree::Visitors::Base
18
18
  @tabs = 0
19
19
  # 2 spaces by default
20
20
  @tab_chars = @options[:indent] || " "
21
+ @is_else = false
21
22
  end
22
23
 
23
24
  def visit_children(parent)
@@ -29,7 +30,7 @@ class Sass::Tree::Visitors::Convert < Sass::Tree::Visitors::Base
29
30
  if @format == :sass
30
31
  "\n" + res.rstrip + "\n"
31
32
  else
32
- " {\n" + res.rstrip + "\n#{ @tab_chars * (@tabs - 1)}}\n"
33
+ " {\n" + res.rstrip + "\n#{@tab_chars * (@tabs - 1)}}\n"
33
34
  end
34
35
  ensure
35
36
  @tabs -= 1
@@ -47,14 +48,14 @@ class Sass::Tree::Visitors::Convert < Sass::Tree::Visitors::Base
47
48
  def visit_comment(node)
48
49
  value = interp_to_src(node.value)
49
50
  if @format == :sass
50
- content = value.gsub(/\*\/$/, '').rstrip
51
+ content = value.gsub(%r{\*/$}, '').rstrip
51
52
  if content =~ /\A[ \t]/
52
53
  # Re-indent SCSS comments like this:
53
54
  # /* foo
54
55
  # bar
55
56
  # baz */
56
57
  content.gsub!(/^/, ' ')
57
- content.sub!(/\A([ \t]*)\/\*/, '/*\1')
58
+ content.sub!(%r{\A([ \t]*)/\*}, '/*\1')
58
59
  end
59
60
 
60
61
  if content.include?("\n")
@@ -68,13 +69,13 @@ class Sass::Tree::Visitors::Convert < Sass::Tree::Visitors::Base
68
69
  end
69
70
  end
70
71
 
71
- content.gsub!(/\A\/\*/, '//') if node.type == :silent
72
+ content.gsub!(%r{\A/\*}, '//') if node.type == :silent
72
73
  content.gsub!(/^/, tab_str)
73
74
  content = content.rstrip + "\n"
74
75
  else
75
76
  spaces = (@tab_chars * [@tabs - value[/^ */].size, 0].max)
76
77
  content = if node.type == :silent
77
- value.gsub(/^[\/ ]\*/, '//').gsub(/ *\*\/$/, '')
78
+ value.gsub(%r{^[/ ]\*}, '//').gsub(%r{ *\*/$}, '')
78
79
  else
79
80
  value
80
81
  end.gsub(/^/, spaces) + "\n"
@@ -104,12 +105,12 @@ class Sass::Tree::Visitors::Convert < Sass::Tree::Visitors::Base
104
105
 
105
106
  def visit_extend(node)
106
107
  "#{tab_str}@extend #{selector_to_src(node.selector).lstrip}" +
107
- "#{" !optional" if node.optional?}#{semi}\n"
108
+ "#{' !optional' if node.optional?}#{semi}\n"
108
109
  end
109
110
 
110
111
  def visit_for(node)
111
112
  "#{tab_str}@for $#{dasherize(node.var)} from #{node.from.to_sass(@options)} " +
112
- "#{node.exclusive ? "to" : "through"} #{node.to.to_sass(@options)}#{yield}"
113
+ "#{node.exclusive ? 'to' : 'through'} #{node.to.to_sass(@options)}#{yield}"
113
114
  end
114
115
 
115
116
  def visit_function(node)
@@ -150,6 +150,8 @@ class Sass::Tree::Visitors::Perform < Sass::Tree::Visitors::Base
150
150
 
151
151
  def initialize(env)
152
152
  @environment = env
153
+ @in_keyframes = false
154
+ @at_root_without_rule = false
153
155
  end
154
156
 
155
157
  # If an exception is raised, this adds proper metadata to the backtrace.
@@ -287,7 +289,7 @@ WARNING
287
289
 
288
290
  @environment.set_local_function(node.name,
289
291
  Sass::Callable.new(node.name, node.args, node.splat, env,
290
- node.children, !:has_content, "function"))
292
+ node.children, false, "function"))
291
293
  []
292
294
  end
293
295
 
@@ -349,7 +351,7 @@ WARNING
349
351
  raise Sass::SyntaxError.new("Undefined mixin '#{node.name}'.") unless mixin
350
352
 
351
353
  if node.children.any? && !mixin.has_content
352
- raise Sass::SyntaxError.new(%{Mixin "#{node.name}" does not accept a content block.})
354
+ raise Sass::SyntaxError.new(%(Mixin "#{node.name}" does not accept a content block.))
353
355
  end
354
356
 
355
357
  args = node.args.map {|a| a.perform(@environment)}
@@ -13,7 +13,9 @@ class Sass::Tree::Visitors::ToCss < Sass::Tree::Visitors::Base
13
13
  @line = 1
14
14
  @offset = 1
15
15
  @result = ""
16
- @source_mapping = Sass::Source::Map.new if build_source_mapping
16
+ @source_mapping = build_source_mapping ? Sass::Source::Map.new : nil
17
+ @lstrip = nil
18
+ @in_directive = false
17
19
  end
18
20
 
19
21
  # Runs the visitor on `node`.
@@ -102,7 +104,7 @@ class Sass::Tree::Visitors::ToCss < Sass::Tree::Visitors::Base
102
104
  @lstrip = true
103
105
  yield
104
106
  ensure
105
- @lstrip = @lstrip && old_lstrip
107
+ @lstrip &&= old_lstrip
106
108
  end
107
109
 
108
110
  # Prepend `prefix` to the output string.
@@ -120,12 +122,10 @@ class Sass::Tree::Visitors::ToCss < Sass::Tree::Visitors::Base
120
122
  node.children.each do |child|
121
123
  next if child.invisible?
122
124
  visit(child)
123
- unless node.style == :compressed
124
- output "\n"
125
- if child.is_a?(Sass::Tree::DirectiveNode) && child.has_children && !child.bubbles?
126
- output "\n"
127
- end
128
- end
125
+ next if node.style == :compressed
126
+ output "\n"
127
+ next unless child.is_a?(Sass::Tree::DirectiveNode) && child.has_children && !child.bubbles?
128
+ output "\n"
129
129
  end
130
130
  rstrip!
131
131
  if node.style == :compressed && trailing_semicolon?
@@ -166,7 +166,7 @@ class Sass::Tree::Visitors::ToCss < Sass::Tree::Visitors::Base
166
166
  content.gsub!(%r{^(\s*)//(.*)$}) {"#{$1}/*#{$2} */"}
167
167
  end
168
168
  if (node.style == :compact || node.style == :compressed) && node.type != :loud
169
- content.gsub!(/\n +(\* *(?!\/))?/, ' ')
169
+ content.gsub!(%r{\n +(\* *(?!/))?}, ' ')
170
170
  end
171
171
  for_node(node) {output(content)}
172
172
  end
@@ -187,7 +187,7 @@ class Sass::Tree::Visitors::ToCss < Sass::Tree::Visitors::Base
187
187
  return
188
188
  end
189
189
 
190
- @in_directive = @in_directive || !node.is_a?(Sass::Tree::MediaNode)
190
+ @in_directive ||= !node.is_a?(Sass::Tree::MediaNode)
191
191
  output(tab_str) if node.style != :compressed
192
192
  for_node(node) {output(node.resolved_value)}
193
193
  output(node.style == :compressed ? "{" : " {")
@@ -512,7 +512,7 @@ module Sass
512
512
  #
513
513
  # @param msg [String]
514
514
  def sass_warn(msg)
515
- msg = msg + "\n" unless ruby1?
515
+ msg += "\n" unless ruby1?
516
516
  Sass.logger.warn(msg)
517
517
  end
518
518
 
@@ -571,7 +571,7 @@ module Sass
571
571
  #
572
572
  # @return [Boolean]
573
573
  def listen_geq_2?
574
- return @listen_geq_2 unless @listen_geq_2.nil?
574
+ return @listen_geq_2 if defined?(@listen_geq_2)
575
575
  @listen_geq_2 =
576
576
  begin
577
577
  # Make sure we're loading listen/version from the same place that
@@ -729,8 +729,8 @@ module Sass
729
729
  path = path.tr('\\', '/') if windows?
730
730
  path = Sass::Util.escape_uri(path)
731
731
  return path.start_with?('/') ? "file://" + path : path unless windows?
732
- return "file:///" + path.tr("\\", "/") if path =~ /^[a-zA-Z]:[\/\\]/
733
- return "file:" + path.tr("\\", "/") if path =~ /\\\\[^\\]+\\[^\\\/]+/
732
+ return "file:///" + path.tr("\\", "/") if path =~ %r{^[a-zA-Z]:[/\\]}
733
+ return "file:" + path.tr("\\", "/") if path =~ %r{\\\\[^\\]+\\[^\\/]+}
734
734
  path.tr("\\", "/")
735
735
  end
736
736
 
@@ -840,9 +840,10 @@ module Sass
840
840
 
841
841
  unless ruby1_8?
842
842
  CHARSET_REGEXP = /\A@charset "([^"]+)"/
843
- UTF_8_BOM = "\xEF\xBB\xBF".force_encoding('BINARY')
844
- UTF_16BE_BOM = "\xFE\xFF".force_encoding('BINARY')
845
- UTF_16LE_BOM = "\xFF\xFE".force_encoding('BINARY')
843
+ bom = "\uFEFF"
844
+ UTF_8_BOM = bom.encode("UTF-8").force_encoding('BINARY')
845
+ UTF_16BE_BOM = bom.encode("UTF-16BE").force_encoding('BINARY')
846
+ UTF_16LE_BOM = bom.encode("UTF-16LE").force_encoding('BINARY')
846
847
  end
847
848
 
848
849
  # Like {\#check\_encoding}, but also checks for a `@charset` declaration
@@ -0,0 +1,3 @@
1
+ ---
2
+ :enabled: true
3
+ :language_version: '3.4'
@@ -87,7 +87,7 @@ class CompilerTest < MiniTest::Test
87
87
  private
88
88
  def create_listener(*args, &on_filesystem_event)
89
89
  if Sass::Util.listen_geq_2?
90
- options = args.pop if args.last.is_a?(Hash)
90
+ args.pop if args.last.is_a?(Hash)
91
91
  args.map do |dir|
92
92
  @fake_listener = FakeListener.new(*args, &on_filesystem_event)
93
93
  @fake_listener.on_start!(&run_during_start)
@@ -0,0 +1,132 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../test_helper'
4
+ require 'sass/engine'
5
+
6
+ class CssVariableTest < MiniTest::Test
7
+ def test_variable_warning_for_operators
8
+ resolve_with_variable_warning("1 == 2")
9
+ resolve_with_variable_warning("1 != 2")
10
+ resolve_with_variable_warning("1 < 2")
11
+ resolve_with_variable_warning("1 <= 2")
12
+ resolve_with_variable_warning("1 > 2")
13
+ resolve_with_variable_warning("1 >= 2")
14
+ resolve_with_variable_warning("1 + 1")
15
+ resolve_with_variable_warning("1 - 1")
16
+ resolve_with_variable_warning("1 * 1")
17
+ resolve_with_variable_warning("1 % 1")
18
+ end
19
+
20
+ def test_variable_warning_for_variable
21
+ render_with_variable_warning(<<SCSS, "$var", 3)
22
+ .foo {
23
+ $var: value;
24
+ --var: $var;
25
+ }
26
+ SCSS
27
+ end
28
+
29
+ def test_variable_warning_for_core_function
30
+ resolve_with_variable_warning("alpha(#abc)")
31
+ end
32
+
33
+ def test_variable_warning_for_sass_function
34
+ render_with_variable_warning(<<SCSS, "my-fn()", 2)
35
+ @function my-fn() {@return null}
36
+ .foo {--var: my-fn()}
37
+ SCSS
38
+ end
39
+
40
+ def test_variable_warning_for_parens
41
+ resolve_with_variable_warning("(foo)", "foo")
42
+ resolve_with_variable_warning("(foo,)")
43
+ end
44
+
45
+ def test_variable_warning_for_selector
46
+ resolve_with_variable_warning("&")
47
+ end
48
+
49
+ def test_variable_warning_for_nested_properties
50
+ assert_warning(<<WARNING) {render(<<SCSS)}
51
+ DEPRECATION WARNING on line 2 of #{filename_for_test :scss}:
52
+ Sass 3.6 will change the way CSS variables are parsed. Instead of being parsed as
53
+ normal properties, they will not allow any Sass-specific behavior other than \#{}.
54
+ WARNING
55
+ .foo {
56
+ --var: {
57
+ a: b;
58
+ }
59
+ }
60
+ SCSS
61
+ end
62
+
63
+ def test_no_warning
64
+ assert_no_variable_warning("foo")
65
+ assert_no_variable_warning("true")
66
+ assert_no_variable_warning("1, 2")
67
+ assert_no_variable_warning("1 2")
68
+ assert_no_variable_warning("1 / 2")
69
+ assert_no_variable_warning("foo / bar")
70
+ assert_no_variable_warning("asdf(foo)")
71
+ assert_no_variable_warning("calc(1 + 1)")
72
+ assert_no_variable_warning("asdf(foo=2)")
73
+ end
74
+
75
+ def test_no_warning_within_interpolation
76
+ assert_no_variable_warning('#{1 + 1}')
77
+ assert_no_variable_warning('#{alpha(#abc)}')
78
+ end
79
+
80
+ private
81
+
82
+ def assert_no_variable_warning(str)
83
+ assert_no_warning {render("a {--var: #{str}}")}
84
+ assert_no_warning {render("a\n --var: #{str}", :syntax => :sass)}
85
+ end
86
+
87
+ def resolve_with_variable_warning(str, expression = nil)
88
+ render_with_variable_warning("a {--var: #{str}}", expression || str, 1)
89
+ render_with_variable_warning(
90
+ "a\n --var: #{str}", expression || str, 2, :syntax => :sass)
91
+ end
92
+
93
+ def render_with_variable_warning(sass, expression, line, opts = {})
94
+ opts[:syntax] ||= :scss
95
+ assert_warning(<<WARNING) {render(sass, opts)}
96
+ DEPRECATION WARNING on line #{line} of #{filename_for_test(opts[:syntax])}:
97
+ Sass 3.6 will change the way CSS variables are parsed. Instead of being parsed as
98
+ normal properties, they will not allow any Sass-specific behavior other than \#{}.
99
+ For forwards-compatibility, use \#{}:
100
+
101
+ --variable: \#{#{expression}};
102
+ WARNING
103
+ end
104
+
105
+ def render(sass, options = {})
106
+ options[:syntax] ||= :scss
107
+ options[:cache] = false
108
+ munge_filename options
109
+ Sass::Engine.new(sass, options).render
110
+ end
111
+
112
+ def resolve(str, opts = {}, environment = env)
113
+ munge_filename opts
114
+ val = eval(str, opts, environment)
115
+ assert_kind_of Sass::Script::Value::Base, val
116
+ val.options = opts
117
+ val.is_a?(Sass::Script::Value::String) ? val.value : val.to_s
118
+ end
119
+
120
+ def eval(str, opts = {}, environment = env)
121
+ munge_filename opts
122
+ Sass::Script.parse(str, opts.delete(:line) || 1,
123
+ opts.delete(:offset) || 0, opts).
124
+ perform(Sass::Environment.new(environment, opts))
125
+ end
126
+
127
+ def env(hash = {})
128
+ env = Sass::Environment.new
129
+ hash.each {|k, v| env.set_var(k, v)}
130
+ env
131
+ end
132
+ end
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  require File.dirname(__FILE__) + '/../test_helper'
3
+ require 'fileutils'
3
4
  require 'sass/util/test'
4
5
  require 'tmpdir'
5
6
 
@@ -64,6 +65,14 @@ class ExecTest < MiniTest::Test
64
65
  assert_equal(".ruleset\r\n margin: 0\r\n", read(src))
65
66
  end
66
67
 
68
+ def test_sass_convert_R
69
+ Dir.chdir(@dir) do
70
+ src = get_path("styles/src.css")
71
+ write(src, ".ruleset { margin: 0 }")
72
+ assert(exec(*%w[sass-convert -Rq --from css --to scss --trace styles]))
73
+ end
74
+ end
75
+
67
76
  private
68
77
 
69
78
  def get_path(name)
@@ -75,6 +84,7 @@ class ExecTest < MiniTest::Test
75
84
  end
76
85
 
77
86
  def write(file, content)
87
+ FileUtils.mkdir_p(File.dirname(file))
78
88
  open(file, 'wb') {|f| f.write(content)}
79
89
  end
80
90
 
@@ -1101,7 +1101,7 @@ CSS
1101
1101
  a
1102
1102
  b: foo() / 2
1103
1103
  SASS
1104
- end
1104
+ end
1105
1105
 
1106
1106
  def test_funcall_has_higher_precedence_than_color_name
1107
1107
  assert_equal "teal(12)", resolve("teal(12)")
@@ -4144,4 +4144,14 @@ CSS
4144
4144
  SASS
4145
4145
  end
4146
4146
 
4147
+ def test_crlf
4148
+ # Attempt to reproduce https://github.com/sass/sass/issues/1985
4149
+ assert_equal(<<CSS, render(<<SCSS))
4150
+ p {
4151
+ margin: 0; }
4152
+ CSS
4153
+ p {\r\n margin: 0;\r\n}
4154
+ SCSS
4155
+ end
4156
+
4147
4157
  end
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.21
4
+ version: 3.4.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Natalie Weizenbaum
@@ -10,48 +10,48 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-01-12 00:00:00.000000000 Z
13
+ date: 2016-03-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: yard
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - '>='
19
+ - - ">="
20
20
  - !ruby/object:Gem::Version
21
21
  version: 0.5.3
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - '>='
26
+ - - ">="
27
27
  - !ruby/object:Gem::Version
28
28
  version: 0.5.3
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: maruku
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - '>='
33
+ - - ">="
34
34
  - !ruby/object:Gem::Version
35
35
  version: 0.5.9
36
36
  type: :development
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - '>='
40
+ - - ">="
41
41
  - !ruby/object:Gem::Version
42
42
  version: 0.5.9
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: minitest
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - '>='
47
+ - - ">="
48
48
  - !ruby/object:Gem::Version
49
49
  version: '5'
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - '>='
54
+ - - ">="
55
55
  - !ruby/object:Gem::Version
56
56
  version: '5'
57
57
  description: |2
@@ -67,31 +67,47 @@ executables:
67
67
  extensions: []
68
68
  extra_rdoc_files: []
69
69
  files:
70
- - rails/init.rb
70
+ - ".yardopts"
71
+ - CODE_OF_CONDUCT.md
72
+ - CONTRIBUTING.md
73
+ - MIT-LICENSE
74
+ - README.md
75
+ - REVISION
76
+ - Rakefile
77
+ - VERSION
78
+ - VERSION_DATE
79
+ - VERSION_NAME
80
+ - bin/sass
81
+ - bin/sass-convert
82
+ - bin/scss
83
+ - extra/update_watch.rb
84
+ - init.rb
85
+ - lib/sass.rb
86
+ - lib/sass/cache_stores.rb
71
87
  - lib/sass/cache_stores/base.rb
72
88
  - lib/sass/cache_stores/chain.rb
73
89
  - lib/sass/cache_stores/filesystem.rb
74
90
  - lib/sass/cache_stores/memory.rb
75
91
  - lib/sass/cache_stores/null.rb
76
- - lib/sass/cache_stores.rb
77
92
  - lib/sass/callbacks.rb
78
93
  - lib/sass/css.rb
79
94
  - lib/sass/engine.rb
80
95
  - lib/sass/environment.rb
81
96
  - lib/sass/error.rb
97
+ - lib/sass/exec.rb
82
98
  - lib/sass/exec/base.rb
83
99
  - lib/sass/exec/sass_convert.rb
84
100
  - lib/sass/exec/sass_scss.rb
85
- - lib/sass/exec.rb
86
101
  - lib/sass/features.rb
102
+ - lib/sass/importers.rb
87
103
  - lib/sass/importers/base.rb
88
104
  - lib/sass/importers/deprecated_path.rb
89
105
  - lib/sass/importers/filesystem.rb
90
- - lib/sass/importers.rb
106
+ - lib/sass/logger.rb
91
107
  - lib/sass/logger/base.rb
92
108
  - lib/sass/logger/log_level.rb
93
- - lib/sass/logger.rb
94
109
  - lib/sass/media.rb
110
+ - lib/sass/plugin.rb
95
111
  - lib/sass/plugin/compiler.rb
96
112
  - lib/sass/plugin/configuration.rb
97
113
  - lib/sass/plugin/generic.rb
@@ -99,15 +115,17 @@ files:
99
115
  - lib/sass/plugin/rack.rb
100
116
  - lib/sass/plugin/rails.rb
101
117
  - lib/sass/plugin/staleness_checker.rb
102
- - lib/sass/plugin.rb
103
118
  - lib/sass/railtie.rb
104
119
  - lib/sass/repl.rb
105
120
  - lib/sass/root.rb
121
+ - lib/sass/script.rb
106
122
  - lib/sass/script/css_lexer.rb
107
123
  - lib/sass/script/css_parser.rb
124
+ - lib/sass/script/css_variable_warning.rb
108
125
  - lib/sass/script/functions.rb
109
126
  - lib/sass/script/lexer.rb
110
127
  - lib/sass/script/parser.rb
128
+ - lib/sass/script/tree.rb
111
129
  - lib/sass/script/tree/funcall.rb
112
130
  - lib/sass/script/tree/interpolation.rb
113
131
  - lib/sass/script/tree/list_literal.rb
@@ -119,7 +137,7 @@ files:
119
137
  - lib/sass/script/tree/string_interpolation.rb
120
138
  - lib/sass/script/tree/unary_operation.rb
121
139
  - lib/sass/script/tree/variable.rb
122
- - lib/sass/script/tree.rb
140
+ - lib/sass/script/value.rb
123
141
  - lib/sass/script/value/arg_list.rb
124
142
  - lib/sass/script/value/base.rb
125
143
  - lib/sass/script/value/bool.rb
@@ -130,22 +148,18 @@ files:
130
148
  - lib/sass/script/value/null.rb
131
149
  - lib/sass/script/value/number.rb
132
150
  - lib/sass/script/value/string.rb
133
- - lib/sass/script/value.rb
134
- - lib/sass/script.rb
151
+ - lib/sass/scss.rb
135
152
  - lib/sass/scss/css_parser.rb
136
153
  - lib/sass/scss/parser.rb
137
154
  - lib/sass/scss/rx.rb
138
- - lib/sass/scss/script_lexer.rb
139
- - lib/sass/scss/script_parser.rb
140
155
  - lib/sass/scss/static_parser.rb
141
- - lib/sass/scss.rb
156
+ - lib/sass/selector.rb
142
157
  - lib/sass/selector/abstract_sequence.rb
143
158
  - lib/sass/selector/comma_sequence.rb
144
159
  - lib/sass/selector/pseudo.rb
145
160
  - lib/sass/selector/sequence.rb
146
161
  - lib/sass/selector/simple.rb
147
162
  - lib/sass/selector/simple_sequence.rb
148
- - lib/sass/selector.rb
149
163
  - lib/sass/shared.rb
150
164
  - lib/sass/source/map.rb
151
165
  - lib/sass/source/position.rb
@@ -189,59 +203,22 @@ files:
189
203
  - lib/sass/tree/visitors/to_css.rb
190
204
  - lib/sass/tree/warn_node.rb
191
205
  - lib/sass/tree/while_node.rb
206
+ - lib/sass/util.rb
192
207
  - lib/sass/util/cross_platform_random.rb
193
208
  - lib/sass/util/multibyte_string_scanner.rb
194
209
  - lib/sass/util/normalized_map.rb
195
210
  - lib/sass/util/ordered_hash.rb
196
211
  - lib/sass/util/subset_map.rb
197
212
  - lib/sass/util/test.rb
198
- - lib/sass/util.rb
199
213
  - lib/sass/version.rb
200
- - lib/sass.rb
201
- - vendor/listen/CHANGELOG.md
202
- - vendor/listen/CONTRIBUTING.md
203
- - vendor/listen/Gemfile
204
- - vendor/listen/Guardfile
205
- - vendor/listen/lib/listen/adapter.rb
206
- - vendor/listen/lib/listen/adapters/bsd.rb
207
- - vendor/listen/lib/listen/adapters/darwin.rb
208
- - vendor/listen/lib/listen/adapters/linux.rb
209
- - vendor/listen/lib/listen/adapters/polling.rb
210
- - vendor/listen/lib/listen/adapters/windows.rb
211
- - vendor/listen/lib/listen/directory_record.rb
212
- - vendor/listen/lib/listen/listener.rb
213
- - vendor/listen/lib/listen/turnstile.rb
214
- - vendor/listen/lib/listen/version.rb
215
- - vendor/listen/lib/listen.rb
216
- - vendor/listen/LICENSE
217
- - vendor/listen/listen.gemspec
218
- - vendor/listen/Rakefile
219
- - vendor/listen/README.md
220
- - vendor/listen/spec/listen/adapter_spec.rb
221
- - vendor/listen/spec/listen/adapters/bsd_spec.rb
222
- - vendor/listen/spec/listen/adapters/darwin_spec.rb
223
- - vendor/listen/spec/listen/adapters/linux_spec.rb
224
- - vendor/listen/spec/listen/adapters/polling_spec.rb
225
- - vendor/listen/spec/listen/adapters/windows_spec.rb
226
- - vendor/listen/spec/listen/directory_record_spec.rb
227
- - vendor/listen/spec/listen/listener_spec.rb
228
- - vendor/listen/spec/listen/turnstile_spec.rb
229
- - vendor/listen/spec/listen_spec.rb
230
- - vendor/listen/spec/spec_helper.rb
231
- - vendor/listen/spec/support/adapter_helper.rb
232
- - vendor/listen/spec/support/directory_record_helper.rb
233
- - vendor/listen/spec/support/fixtures_helper.rb
234
- - vendor/listen/spec/support/listeners_helper.rb
235
- - vendor/listen/spec/support/platform_helper.rb
236
- - vendor/listen/Vagrantfile
237
- - bin/sass
238
- - bin/sass-convert
239
- - bin/scss
214
+ - rails/init.rb
215
+ - test/sass-spec.yml
240
216
  - test/sass/cache_test.rb
241
217
  - test/sass/callbacks_test.rb
242
218
  - test/sass/compiler_test.rb
243
219
  - test/sass/conversion_test.rb
244
220
  - test/sass/css2sass_test.rb
221
+ - test/sass/css_variable_test.rb
245
222
  - test/sass/data/hsl-rgb.txt
246
223
  - test/sass/encoding_test.rb
247
224
  - test/sass/engine_test.rb
@@ -361,18 +338,42 @@ files:
361
338
  - test/sass/util_test.rb
362
339
  - test/sass/value_helpers_test.rb
363
340
  - test/test_helper.rb
364
- - extra/update_watch.rb
365
- - Rakefile
366
- - init.rb
367
- - .yardopts
368
- - CODE_OF_CONDUCT.md
369
- - CONTRIBUTING.md
370
- - MIT-LICENSE
371
- - README.md
372
- - REVISION
373
- - VERSION
374
- - VERSION_DATE
375
- - VERSION_NAME
341
+ - vendor/listen/CHANGELOG.md
342
+ - vendor/listen/CONTRIBUTING.md
343
+ - vendor/listen/Gemfile
344
+ - vendor/listen/Guardfile
345
+ - vendor/listen/LICENSE
346
+ - vendor/listen/README.md
347
+ - vendor/listen/Rakefile
348
+ - vendor/listen/Vagrantfile
349
+ - vendor/listen/lib/listen.rb
350
+ - vendor/listen/lib/listen/adapter.rb
351
+ - vendor/listen/lib/listen/adapters/bsd.rb
352
+ - vendor/listen/lib/listen/adapters/darwin.rb
353
+ - vendor/listen/lib/listen/adapters/linux.rb
354
+ - vendor/listen/lib/listen/adapters/polling.rb
355
+ - vendor/listen/lib/listen/adapters/windows.rb
356
+ - vendor/listen/lib/listen/directory_record.rb
357
+ - vendor/listen/lib/listen/listener.rb
358
+ - vendor/listen/lib/listen/turnstile.rb
359
+ - vendor/listen/lib/listen/version.rb
360
+ - vendor/listen/listen.gemspec
361
+ - vendor/listen/spec/listen/adapter_spec.rb
362
+ - vendor/listen/spec/listen/adapters/bsd_spec.rb
363
+ - vendor/listen/spec/listen/adapters/darwin_spec.rb
364
+ - vendor/listen/spec/listen/adapters/linux_spec.rb
365
+ - vendor/listen/spec/listen/adapters/polling_spec.rb
366
+ - vendor/listen/spec/listen/adapters/windows_spec.rb
367
+ - vendor/listen/spec/listen/directory_record_spec.rb
368
+ - vendor/listen/spec/listen/listener_spec.rb
369
+ - vendor/listen/spec/listen/turnstile_spec.rb
370
+ - vendor/listen/spec/listen_spec.rb
371
+ - vendor/listen/spec/spec_helper.rb
372
+ - vendor/listen/spec/support/adapter_helper.rb
373
+ - vendor/listen/spec/support/directory_record_helper.rb
374
+ - vendor/listen/spec/support/fixtures_helper.rb
375
+ - vendor/listen/spec/support/listeners_helper.rb
376
+ - vendor/listen/spec/support/platform_helper.rb
376
377
  homepage: http://sass-lang.com/
377
378
  licenses:
378
379
  - MIT
@@ -383,17 +384,17 @@ require_paths:
383
384
  - lib
384
385
  required_ruby_version: !ruby/object:Gem::Requirement
385
386
  requirements:
386
- - - '>='
387
+ - - ">="
387
388
  - !ruby/object:Gem::Version
388
389
  version: 1.8.7
389
390
  required_rubygems_version: !ruby/object:Gem::Requirement
390
391
  requirements:
391
- - - '>='
392
+ - - ">="
392
393
  - !ruby/object:Gem::Version
393
394
  version: '0'
394
395
  requirements: []
395
396
  rubyforge_project: sass
396
- rubygems_version: 2.0.3
397
+ rubygems_version: 2.5.1
397
398
  signing_key:
398
399
  specification_version: 4
399
400
  summary: A powerful but elegant CSS compiler that makes CSS fun again.
@@ -403,6 +404,7 @@ test_files:
403
404
  - test/sass/compiler_test.rb
404
405
  - test/sass/conversion_test.rb
405
406
  - test/sass/css2sass_test.rb
407
+ - test/sass/css_variable_test.rb
406
408
  - test/sass/encoding_test.rb
407
409
  - test/sass/engine_test.rb
408
410
  - test/sass/exec_test.rb