sass 3.5.0.pre.rc.1 → 3.5.0

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.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -1
  3. data/README.md +1 -1
  4. data/Rakefile +40 -11
  5. data/VERSION +1 -1
  6. data/VERSION_DATE +1 -1
  7. data/extra/sass-spec-ref.sh +32 -0
  8. data/lib/sass.rb +3 -3
  9. data/lib/sass/css.rb +1 -1
  10. data/lib/sass/deprecation.rb +55 -0
  11. data/lib/sass/engine.rb +16 -12
  12. data/lib/sass/environment.rb +1 -1
  13. data/lib/sass/error.rb +3 -3
  14. data/lib/sass/exec/base.rb +1 -1
  15. data/lib/sass/plugin.rb +1 -1
  16. data/lib/sass/plugin/compiler.rb +1 -1
  17. data/lib/sass/plugin/configuration.rb +2 -2
  18. data/lib/sass/plugin/rack.rb +3 -3
  19. data/lib/sass/plugin/staleness_checker.rb +3 -3
  20. data/lib/sass/script.rb +3 -3
  21. data/lib/sass/script/functions.rb +23 -22
  22. data/lib/sass/script/lexer.rb +17 -8
  23. data/lib/sass/script/parser.rb +8 -7
  24. data/lib/sass/script/tree/node.rb +2 -2
  25. data/lib/sass/script/tree/operation.rb +43 -16
  26. data/lib/sass/script/value/base.rb +3 -3
  27. data/lib/sass/script/value/color.rb +15 -10
  28. data/lib/sass/script/value/helpers.rb +13 -2
  29. data/lib/sass/script/value/list.rb +2 -2
  30. data/lib/sass/script/value/number.rb +4 -4
  31. data/lib/sass/script/value/string.rb +5 -12
  32. data/lib/sass/scss/parser.rb +7 -4
  33. data/lib/sass/scss/rx.rb +1 -1
  34. data/lib/sass/scss/static_parser.rb +12 -24
  35. data/lib/sass/selector/abstract_sequence.rb +12 -11
  36. data/lib/sass/selector/comma_sequence.rb +18 -3
  37. data/lib/sass/selector/pseudo.rb +15 -2
  38. data/lib/sass/selector/sequence.rb +9 -7
  39. data/lib/sass/selector/simple.rb +5 -4
  40. data/lib/sass/selector/simple_sequence.rb +7 -3
  41. data/lib/sass/shared.rb +5 -3
  42. data/lib/sass/source/map.rb +2 -2
  43. data/lib/sass/source/position.rb +4 -4
  44. data/lib/sass/tree/comment_node.rb +1 -1
  45. data/lib/sass/tree/node.rb +3 -3
  46. data/lib/sass/tree/prop_node.rb +1 -1
  47. data/lib/sass/tree/rule_node.rb +15 -6
  48. data/lib/sass/tree/visitors/cssize.rb +3 -5
  49. data/lib/sass/tree/visitors/deep_copy.rb +1 -1
  50. data/lib/sass/tree/visitors/extend.rb +2 -8
  51. data/lib/sass/tree/visitors/perform.rb +3 -2
  52. data/lib/sass/tree/visitors/to_css.rb +3 -3
  53. data/lib/sass/util.rb +32 -5
  54. data/lib/sass/version.rb +2 -4
  55. data/test/sass/cache_test.rb +0 -1
  56. data/test/sass/callbacks_test.rb +0 -1
  57. data/test/sass/compiler_test.rb +0 -1
  58. data/test/sass/conversion_test.rb +3 -4
  59. data/test/sass/css2sass_test.rb +1 -2
  60. data/test/sass/css_variable_test.rb +0 -1
  61. data/test/sass/encoding_test.rb +0 -1
  62. data/test/sass/engine_test.rb +63 -60
  63. data/test/sass/exec_test.rb +0 -1
  64. data/test/sass/extend_test.rb +40 -81
  65. data/test/sass/functions_test.rb +8 -6
  66. data/test/sass/importer_test.rb +0 -1
  67. data/test/sass/logger_test.rb +0 -1
  68. data/test/sass/more_templates/more1.sass +10 -10
  69. data/test/sass/more_templates/more_import.sass +2 -2
  70. data/test/sass/plugin_test.rb +3 -4
  71. data/test/sass/results/script.css +1 -1
  72. data/test/sass/results/units.css +2 -2
  73. data/test/sass/script_conversion_test.rb +1 -2
  74. data/test/sass/script_test.rb +55 -47
  75. data/test/sass/scss/css_test.rb +2 -3
  76. data/test/sass/scss/rx_test.rb +0 -1
  77. data/test/sass/scss/scss_test.rb +26 -12
  78. data/test/sass/source_map_test.rb +13 -14
  79. data/test/sass/superselector_test.rb +0 -1
  80. data/test/sass/templates/_partial.sass +1 -1
  81. data/test/sass/templates/basic.sass +10 -10
  82. data/test/sass/templates/bork1.sass +1 -1
  83. data/test/sass/templates/bork5.sass +1 -1
  84. data/test/sass/templates/compact.sass +10 -10
  85. data/test/sass/templates/complex.sass +187 -187
  86. data/test/sass/templates/compressed.sass +10 -10
  87. data/test/sass/templates/expanded.sass +10 -10
  88. data/test/sass/templates/import.sass +2 -2
  89. data/test/sass/templates/importee.sass +3 -3
  90. data/test/sass/templates/mixins.sass +22 -22
  91. data/test/sass/templates/multiline.sass +4 -4
  92. data/test/sass/templates/nested.sass +13 -13
  93. data/test/sass/templates/parent_ref.sass +12 -12
  94. data/test/sass/templates/script.sass +70 -70
  95. data/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +1 -1
  96. data/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +2 -2
  97. data/test/sass/templates/subdir/subdir.sass +3 -3
  98. data/test/sass/templates/units.sass +10 -10
  99. data/test/sass/util/multibyte_string_scanner_test.rb +10 -3
  100. data/test/sass/util/normalized_map_test.rb +0 -1
  101. data/test/sass/util/subset_map_test.rb +0 -1
  102. data/test/sass/util_test.rb +4 -3
  103. data/test/sass/value_helpers_test.rb +0 -1
  104. metadata +15 -13
@@ -163,7 +163,7 @@ module Sass
163
163
  next sel if seen.include?([sel])
164
164
  extended = sel.selector.do_extend(extends, parent_directives, replace, seen, false)
165
165
  next sel if extended == sel.selector
166
- extended.members.reject! {|seq| seq.has_placeholder?}
166
+ extended.members.reject! {|seq| seq.invisible?}
167
167
 
168
168
  # For `:not()`, we usually want to get rid of any complex
169
169
  # selectors because that will cause the selector to fail to
@@ -191,10 +191,9 @@ module Sass
191
191
  # seq is A, sels is B, and self is C
192
192
 
193
193
  self_without_sel = Sass::Util.array_minus(members, sels)
194
- group.each {|e| e.result = :failed_to_unify unless e.result == :succeeded}
194
+ group.each {|e| e.success = true}
195
195
  unified = seq.members.last.unify(SimpleSequence.new(self_without_sel, subject?))
196
196
  next unless unified
197
- group.each {|e| e.result = :succeeded}
198
197
  group.each {|e| check_directives_match!(e, parent_directives)}
199
198
  new_seq = Sequence.new(seq.members[0...-1] + [unified])
200
199
  new_seq.add_sources!(sources + [seq])
@@ -287,6 +286,11 @@ module Sass
287
286
  # @see Simple#to_s
288
287
  def to_s(opts = {})
289
288
  res = @members.map {|m| m.to_s(opts)}.join
289
+
290
+ # :not(%foo) may resolve to the empty string, but it should match every
291
+ # selector so we replace it with "*".
292
+ res = '*' if res.empty?
293
+
290
294
  res << '!' if subject?
291
295
  res
292
296
  end
@@ -27,9 +27,11 @@ module Sass
27
27
  # from to
28
28
  #
29
29
  # @param scanner [StringScanner] The string scanner to move
30
- # @param start [String] The character opening the balanced pair.
31
- # @param finish [String] The character closing the balanced pair.
32
- # @param count [Fixnum] The number of opening characters matched
30
+ # @param start [Character] The character opening the balanced pair.
31
+ # A `Fixnum` in 1.8, a `String` in 1.9
32
+ # @param finish [Character] The character closing the balanced pair.
33
+ # A `Fixnum` in 1.8, a `String` in 1.9
34
+ # @param count [Integer] The number of opening characters matched
33
35
  # before calling this method
34
36
  # @return [(String, String)] The string matched within the balanced pair
35
37
  # and the rest of the string.
@@ -37,7 +37,7 @@ module Sass::Source
37
37
 
38
38
  # Shifts all output source ranges forward one or more lines.
39
39
  #
40
- # @param delta [Fixnum] The number of lines to shift the ranges forward.
40
+ # @param delta [Integer] The number of lines to shift the ranges forward.
41
41
  def shift_output_lines(delta)
42
42
  return if delta == 0
43
43
  @data.each do |m|
@@ -49,7 +49,7 @@ module Sass::Source
49
49
  # Shifts any output source ranges that lie on the first line forward one or
50
50
  # more characters on that line.
51
51
  #
52
- # @param delta [Fixnum] The number of characters to shift the ranges
52
+ # @param delta [Integer] The number of characters to shift the ranges
53
53
  # forward.
54
54
  def shift_output_offsets(delta)
55
55
  return if delta == 0
@@ -2,17 +2,17 @@ module Sass::Source
2
2
  class Position
3
3
  # The one-based line of the document associated with the position.
4
4
  #
5
- # @return [Fixnum]
5
+ # @return [Integer]
6
6
  attr_accessor :line
7
7
 
8
8
  # The one-based offset in the line of the document associated with the
9
9
  # position.
10
10
  #
11
- # @return [Fixnum]
11
+ # @return [Integer]
12
12
  attr_accessor :offset
13
13
 
14
- # @param line [Fixnum] The source line
15
- # @param offset [Fixnum] The source offset
14
+ # @param line [Integer] The source line
15
+ # @param offset [Integer] The source offset
16
16
  def initialize(line, offset)
17
17
  @line = line
18
18
  @offset = offset
@@ -59,7 +59,7 @@ module Sass::Tree
59
59
 
60
60
  # Returns the number of lines in the comment.
61
61
  #
62
- # @return [Fixnum]
62
+ # @return [Integer]
63
63
  def lines
64
64
  @value.inject(0) do |s, e|
65
65
  next s + e.count("\n") if e.is_a?(String)
@@ -69,7 +69,7 @@ module Sass
69
69
 
70
70
  # The line of the document on which this node appeared.
71
71
  #
72
- # @return [Fixnum]
72
+ # @return [Integer]
73
73
  attr_accessor :line
74
74
 
75
75
  # The source range in the document on which this node appeared.
@@ -83,7 +83,7 @@ module Sass
83
83
  attr_writer :filename
84
84
 
85
85
  # The options hash for the node.
86
- # See {file:SASS_REFERENCE.md#options the Sass options documentation}.
86
+ # See {file:SASS_REFERENCE.md#Options the Sass options documentation}.
87
87
  #
88
88
  # @return [{Symbol => Object}]
89
89
  attr_reader :options
@@ -151,7 +151,7 @@ module Sass
151
151
  # @return [Boolean]
152
152
  def invisible?; false; end
153
153
 
154
- # The output style. See {file:SASS_REFERENCE.md#options the Sass options documentation}.
154
+ # The output style. See {file:SASS_REFERENCE.md#Options the Sass options documentation}.
155
155
  #
156
156
  # @return [Symbol]
157
157
  def style
@@ -43,7 +43,7 @@ module Sass::Tree
43
43
  # * This is a child property of another property
44
44
  # * The parent property has a value, and thus will be rendered
45
45
  #
46
- # @return [Fixnum]
46
+ # @return [Integer]
47
47
  attr_accessor :tabs
48
48
 
49
49
  # The source range in which the property name appears.
@@ -40,7 +40,7 @@ module Sass::Tree
40
40
  # * This is a child rule of another rule
41
41
  # * The parent rule has properties, and thus will be rendered
42
42
  #
43
- # @return [Fixnum]
43
+ # @return [Integer]
44
44
  attr_accessor :tabs
45
45
 
46
46
  # The entire selector source range for this rule.
@@ -127,7 +127,7 @@ module Sass::Tree
127
127
 
128
128
  # A rule node is invisible if it has only placeholder selectors.
129
129
  def invisible?
130
- resolved_rules.members.all? {|seq| seq.has_placeholder?}
130
+ resolved_rules.members.all? {|seq| seq.invisible?}
131
131
  end
132
132
 
133
133
  private
@@ -138,10 +138,19 @@ module Sass::Tree
138
138
 
139
139
  # We don't use real filename/line info because we don't have it yet.
140
140
  # When we get it, we'll set it on the parsed rules if possible.
141
- parser = Sass::SCSS::StaticParser.new(@rule.join.strip, nil, nil, 1)
142
- # rubocop:disable RescueModifier
143
- @parsed_rules = parser.parse_selector rescue nil
144
- # rubocop:enable RescueModifier
141
+ parser = nil
142
+ warnings = Sass::Util.silence_warnings do
143
+ parser = Sass::SCSS::StaticParser.new(@rule.join.strip, nil, nil, 1)
144
+ # rubocop:disable RescueModifier
145
+ @parsed_rules = parser.parse_selector rescue nil
146
+ # rubocop:enable RescueModifier
147
+
148
+ $stderr.string
149
+ end
150
+
151
+ # If parsing produces a warning, throw away the result so we can parse
152
+ # later with the real filename info.
153
+ @parsed_rules = nil unless warnings.empty?
145
154
  end
146
155
  end
147
156
  end
@@ -106,11 +106,9 @@ class Sass::Tree::Visitors::Cssize < Sass::Tree::Visitors::Base
106
106
  # @attr node [Sass::Tree::ExtendNode] The node that produced this extend.
107
107
  # @attr directives [Array<Sass::Tree::DirectiveNode>]
108
108
  # The directives containing the `@extend`.
109
- # @attr result [Symbol]
110
- # The result of this extend. One of `:not_found` (the target doesn't exist
111
- # in the document), `:failed_to_unify` (the target exists but cannot be
112
- # unified with the extender), or `:succeeded`.
113
- Extend = Struct.new(:extender, :target, :node, :directives, :result)
109
+ # @attr success [Boolean]
110
+ # Whether this extend successfully matched a selector.
111
+ Extend = Struct.new(:extender, :target, :node, :directives, :success)
114
112
 
115
113
  # Registers an extension in the `@extends` subset map.
116
114
  def visit_extend(node)
@@ -55,7 +55,7 @@ class Sass::Tree::Visitors::DeepCopy < Sass::Tree::Visitors::Base
55
55
 
56
56
  def visit_mixin(node)
57
57
  node.args = node.args.map {|a| a.deep_copy}
58
- node.keywords = Hash[node.keywords.map {|k, v| [k, v.deep_copy]}]
58
+ node.keywords = Sass::Util::NormalizedMap.new(Hash[node.keywords.map {|k, v| [k, v.deep_copy]}])
59
59
  yield
60
60
  end
61
61
 
@@ -49,19 +49,13 @@ class Sass::Tree::Visitors::Extend < Sass::Tree::Visitors::Base
49
49
 
50
50
  def check_extends_fired!(extends)
51
51
  extends.each_value do |ex|
52
- next if ex.result == :succeeded || ex.node.optional?
52
+ next if ex.success || ex.node.optional?
53
53
  message = "\"#{ex.extender}\" failed to @extend \"#{ex.target.join}\"."
54
- reason =
55
- if ex.result == :not_found
56
- "The selector \"#{ex.target.join}\" was not found."
57
- else
58
- "No selectors matching \"#{ex.target.join}\" could be unified with \"#{ex.extender}\"."
59
- end
60
54
 
61
55
  # TODO(nweiz): this should use the Sass stack trace of the extend node.
62
56
  raise Sass::SyntaxError.new(<<MESSAGE, :filename => ex.node.filename, :line => ex.node.line)
63
57
  #{message}
64
- #{reason}
58
+ The selector "#{ex.target.join}" was not found.
65
59
  Use "@extend #{ex.target.join} !optional" if the extend should be able to fail.
66
60
  MESSAGE
67
61
  end
@@ -1,5 +1,7 @@
1
1
  # A visitor for converting a dynamic Sass tree into a static Sass tree.
2
2
  class Sass::Tree::Visitors::Perform < Sass::Tree::Visitors::Base
3
+ @@function_name_deprecation = Sass::Deprecation.new
4
+
3
5
  class << self
4
6
  # @param root [Tree::Node] The root node of the tree to visit.
5
7
  # @param environment [Sass::Environment] The lexical environment.
@@ -280,8 +282,7 @@ class Sass::Tree::Visitors::Perform < Sass::Tree::Visitors::Base
280
282
 
281
283
  if node.normalized_name == 'calc' || node.normalized_name == 'element' ||
282
284
  node.name == 'expression' || node.name == 'url'
283
- Sass::Util.sass_warn <<WARNING
284
- DEPRECATION WARNING on line #{node.line}#{" of #{node.filename}" if node.filename}:
285
+ @@function_name_deprecation.warn(node.filename, node.line, <<WARNING)
285
286
  Naming a function "#{node.name}" is disallowed and will be an error in future versions of Sass.
286
287
  This name conflicts with an existing CSS function with special parse rules.
287
288
  WARNING
@@ -12,7 +12,7 @@ class Sass::Tree::Visitors::ToCss < Sass::Tree::Visitors::Base
12
12
  @tabs = 0
13
13
  @line = 1
14
14
  @offset = 1
15
- @result = ""
15
+ @result = String.new("")
16
16
  @source_mapping = build_source_mapping ? Sass::Source::Map.new : nil
17
17
  @lstrip = nil
18
18
  @in_directive = false
@@ -296,8 +296,8 @@ class Sass::Tree::Visitors::ToCss < Sass::Tree::Visitors::Base
296
296
  end
297
297
 
298
298
  joined_rules = node.resolved_rules.members.map do |seq|
299
- next if seq.has_placeholder?
300
- rule_part = seq.to_s(:style => node.style)
299
+ next if seq.invisible?
300
+ rule_part = seq.to_s(style: node.style, placeholder: false)
301
301
  if node.style == :compressed
302
302
  rule_part.gsub!(/([^,])\s*\n\s*/m, '\1 ')
303
303
  rule_part.gsub!(/\s*([+>])\s*/m, '\1')
@@ -290,6 +290,18 @@ module Sass
290
290
  lcs_backtrace(lcs_table(x, y, &block), x, y, x.size - 1, y.size - 1, &block)
291
291
  end
292
292
 
293
+ # Like `String.upcase`, but only ever upcases ASCII letters.
294
+ def upcase(string)
295
+ return string.upcase unless ruby2_4?
296
+ string.upcase(:ascii)
297
+ end
298
+
299
+ # Like `String.downcase`, but only ever downcases ASCII letters.
300
+ def downcase(string)
301
+ return string.downcase unless ruby2_4?
302
+ string.downcase(:ascii)
303
+ end
304
+
293
305
  # Returns a sub-array of `minuend` containing only elements that are also in
294
306
  # `subtrahend`. Ensures that the return value has the same order as
295
307
  # `minuend`, even on Rubinius where that's not guaranteed by `Array#-`.
@@ -369,7 +381,7 @@ module Sass
369
381
  # Returns information about the caller of the previous method.
370
382
  #
371
383
  # @param entry [String] An entry in the `#caller` list, or a similarly formatted string
372
- # @return [[String, Fixnum, (String, nil)]]
384
+ # @return [[String, Integer, (String, nil)]]
373
385
  # An array containing the filename, line, and method name of the caller.
374
386
  # The method name may be nil
375
387
  def caller_info(entry = nil)
@@ -568,7 +580,7 @@ module Sass
568
580
 
569
581
  # Returns an array of ints representing the JRuby version number.
570
582
  #
571
- # @return [Array<Fixnum>]
583
+ # @return [Array<Integer>]
572
584
  def jruby_version
573
585
  @jruby_version ||= ::JRUBY_VERSION.split(".").map {|s| s.to_i}
574
586
  end
@@ -700,6 +712,21 @@ module Sass
700
712
  UTF_16BE_BOM = bom.encode("UTF-16BE").force_encoding('BINARY')
701
713
  UTF_16LE_BOM = bom.encode("UTF-16LE").force_encoding('BINARY')
702
714
 
715
+ ## Cross-Ruby-Version Compatibility
716
+
717
+ # Whether or not this is running under Ruby 2.4 or higher.
718
+ #
719
+ # @return [Boolean]
720
+ def ruby2_4?
721
+ return @ruby2_4 if defined?(@ruby2_4)
722
+ @ruby2_4 =
723
+ if RUBY_VERSION_COMPONENTS[0] == 2
724
+ RUBY_VERSION_COMPONENTS[1] >= 4
725
+ else
726
+ RUBY_VERSION_COMPONENTS[0] > 2
727
+ end
728
+ end
729
+
703
730
  # Like {\#check\_encoding}, but also checks for a `@charset` declaration
704
731
  # at the beginning of the file and uses that encoding if it exists.
705
732
  #
@@ -890,11 +917,11 @@ module Sass
890
917
 
891
918
  # Converts the argument into a valid JSON value.
892
919
  #
893
- # @param v [Fixnum, String, Array, Boolean, nil]
920
+ # @param v [Integer, String, Array, Boolean, nil]
894
921
  # @return [String]
895
922
  def json_value_of(v)
896
923
  case v
897
- when Fixnum
924
+ when Integer
898
925
  v.to_s
899
926
  when String
900
927
  "\"" + json_escape_string(v) + "\""
@@ -927,7 +954,7 @@ module Sass
927
954
 
928
955
  # Encodes `value` as VLQ (http://en.wikipedia.org/wiki/VLQ).
929
956
  #
930
- # @param value [Fixnum]
957
+ # @param value [Integer]
931
958
  # @return [String] The encoded value
932
959
  def encode_vlq(value)
933
960
  if value < 0
@@ -8,7 +8,7 @@ module Sass
8
8
  # if it was installed from Git.
9
9
  module Version
10
10
  # Returns a hash representing the version of Sass.
11
- # The `:major`, `:minor`, and `:teeny` keys have their respective numbers as Fixnums.
11
+ # The `:major`, `:minor`, and `:teeny` keys have their respective numbers as Integers.
12
12
  # The `:name` key has the name of the version.
13
13
  # The `:string` key contains a human-readable string representation of the version.
14
14
  # The `:number` key is the major, minor, and teeny keys separated by periods.
@@ -41,9 +41,8 @@ module Sass
41
41
  # :prerelease_number => 1
42
42
  # }
43
43
  #
44
- # @return [{Symbol => String/Fixnum}] The version hash
44
+ # @return [{Symbol => String/Integer}] The version hash
45
45
  # @comment
46
- # rubocop:disable ClassVars
47
46
  def version
48
47
  return @@version if defined?(@@version)
49
48
 
@@ -80,7 +79,6 @@ module Sass
80
79
  @@version[:string] << " (#{name})"
81
80
  @@version
82
81
  end
83
- # rubocop:enable ClassVars
84
82
 
85
83
  private
86
84
 
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env ruby
2
1
  require File.dirname(__FILE__) + '/../test_helper'
3
2
  require File.dirname(__FILE__) + '/test_helper'
4
3
  require 'sass/engine'
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env ruby
2
1
  require File.dirname(__FILE__) + '/../test_helper'
3
2
  require 'sass/callbacks'
4
3
 
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env ruby
2
1
  require 'minitest/autorun'
3
2
  require File.dirname(__FILE__) + '/../test_helper'
4
3
  require 'sass/plugin'
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env ruby
2
1
  require File.dirname(__FILE__) + '/../test_helper'
3
2
 
4
3
  class ConversionTest < MiniTest::Test
@@ -13,7 +12,7 @@ foo bar {
13
12
  bip: bop;
14
13
  }
15
14
  SCSS
16
- assert_converts <<SASS, <<SCSS, options: {old: true}
15
+ silence_warnings {assert_converts <<SASS, <<SCSS, options: {old: true}}
17
16
  foo bar
18
17
  :baz bang
19
18
  :bip bop
@@ -183,7 +182,7 @@ SCSS
183
182
  end
184
183
 
185
184
  def test_dynamic_properties_with_old
186
- assert_converts <<SASS, <<SCSS, options: {old: true}
185
+ silence_warnings {assert_converts <<SASS, <<SCSS, options: {old: true}}
187
186
  foo bar
188
187
  :baz 12 $bang "bip"
189
188
  SASS
@@ -1436,7 +1435,7 @@ SCSS
1436
1435
  end
1437
1436
 
1438
1437
  def test_old_declaration_hacks
1439
- assert_converts <<SASS, <<SCSS, options: {old: true}
1438
+ silence_warnings {assert_converts <<SASS, <<SCSS, options: {old: true}}
1440
1439
  foo
1441
1440
  :_name val
1442
1441
  :*name val
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env ruby
2
1
  require 'minitest/autorun'
3
2
  require File.dirname(__FILE__) + '/../test_helper'
4
3
  require 'sass/css'
@@ -14,7 +13,7 @@ CSS
14
13
  h1
15
14
  color: red
16
15
  SASS
17
- assert_equal(<<SASS, css2sass(css, :old => true))
16
+ silence_warnings {assert_equal(<<SASS, css2sass(css, :old => true))}
18
17
  h1
19
18
  :color red
20
19
  SASS
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env ruby
2
1
 
3
2
  require File.dirname(__FILE__) + '/../test_helper'
4
3
  require 'sass/engine'
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env ruby
2
1
  # -*- coding: utf-8 -*-
3
2
  require File.dirname(__FILE__) + '/../test_helper'
4
3
  require File.dirname(__FILE__) + '/test_helper'