sass 3.2.7 → 3.3.0.rc.1

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 (184) hide show
  1. data/MIT-LICENSE +2 -2
  2. data/README.md +14 -2
  3. data/Rakefile +25 -1
  4. data/VERSION +1 -1
  5. data/VERSION_DATE +1 -1
  6. data/VERSION_NAME +1 -1
  7. data/lib/sass/cache_stores/base.rb +4 -2
  8. data/lib/sass/cache_stores/chain.rb +2 -1
  9. data/lib/sass/cache_stores/filesystem.rb +2 -6
  10. data/lib/sass/cache_stores/memory.rb +1 -1
  11. data/lib/sass/cache_stores/null.rb +2 -2
  12. data/lib/sass/callbacks.rb +1 -0
  13. data/lib/sass/css.rb +10 -10
  14. data/lib/sass/engine.rb +403 -150
  15. data/lib/sass/environment.rb +136 -57
  16. data/lib/sass/error.rb +7 -7
  17. data/lib/sass/exec.rb +123 -39
  18. data/lib/sass/features.rb +41 -0
  19. data/lib/sass/importers/base.rb +33 -2
  20. data/lib/sass/importers/deprecated_path.rb +45 -0
  21. data/lib/sass/importers/filesystem.rb +25 -14
  22. data/lib/sass/importers.rb +1 -0
  23. data/lib/sass/logger/base.rb +3 -3
  24. data/lib/sass/logger/log_level.rb +4 -6
  25. data/lib/sass/media.rb +19 -19
  26. data/lib/sass/plugin/compiler.rb +141 -101
  27. data/lib/sass/plugin/configuration.rb +18 -22
  28. data/lib/sass/plugin/merb.rb +1 -1
  29. data/lib/sass/plugin/staleness_checker.rb +24 -8
  30. data/lib/sass/plugin.rb +4 -2
  31. data/lib/sass/repl.rb +3 -3
  32. data/lib/sass/script/css_lexer.rb +9 -4
  33. data/lib/sass/script/css_parser.rb +6 -2
  34. data/lib/sass/script/functions.rb +1343 -590
  35. data/lib/sass/script/lexer.rb +84 -52
  36. data/lib/sass/script/parser.rb +217 -97
  37. data/lib/sass/script/tree/funcall.rb +290 -0
  38. data/lib/sass/script/{interpolation.rb → tree/interpolation.rb} +34 -13
  39. data/lib/sass/script/tree/list_literal.rb +80 -0
  40. data/lib/sass/script/tree/literal.rb +47 -0
  41. data/lib/sass/script/tree/map_literal.rb +64 -0
  42. data/lib/sass/script/{node.rb → tree/node.rb} +22 -12
  43. data/lib/sass/script/{operation.rb → tree/operation.rb} +17 -25
  44. data/lib/sass/script/tree/selector.rb +30 -0
  45. data/lib/sass/script/{string_interpolation.rb → tree/string_interpolation.rb} +5 -4
  46. data/lib/sass/script/{unary_operation.rb → tree/unary_operation.rb} +14 -9
  47. data/lib/sass/script/tree/variable.rb +57 -0
  48. data/lib/sass/script/tree.rb +16 -0
  49. data/lib/sass/script/{arg_list.rb → value/arg_list.rb} +4 -24
  50. data/lib/sass/script/value/base.rb +248 -0
  51. data/lib/sass/script/value/bool.rb +36 -0
  52. data/lib/sass/script/{color.rb → value/color.rb} +239 -195
  53. data/lib/sass/script/value/helpers.rb +155 -0
  54. data/lib/sass/script/value/list.rb +119 -0
  55. data/lib/sass/script/value/map.rb +70 -0
  56. data/lib/sass/script/value/null.rb +45 -0
  57. data/lib/sass/script/{number.rb → value/number.rb} +91 -65
  58. data/lib/sass/script/{string.rb → value/string.rb} +9 -11
  59. data/lib/sass/script/value.rb +11 -0
  60. data/lib/sass/script.rb +35 -8
  61. data/lib/sass/scss/css_parser.rb +2 -1
  62. data/lib/sass/scss/parser.rb +338 -170
  63. data/lib/sass/scss/rx.rb +5 -6
  64. data/lib/sass/scss/script_lexer.rb +1 -0
  65. data/lib/sass/scss/script_parser.rb +1 -0
  66. data/lib/sass/scss/static_parser.rb +23 -6
  67. data/lib/sass/selector/abstract_sequence.rb +2 -2
  68. data/lib/sass/selector/comma_sequence.rb +21 -16
  69. data/lib/sass/selector/sequence.rb +60 -34
  70. data/lib/sass/selector/simple.rb +11 -12
  71. data/lib/sass/selector/simple_sequence.rb +55 -33
  72. data/lib/sass/selector.rb +52 -48
  73. data/lib/sass/source/map.rb +211 -0
  74. data/lib/sass/source/position.rb +39 -0
  75. data/lib/sass/source/range.rb +41 -0
  76. data/lib/sass/stack.rb +120 -0
  77. data/lib/sass/supports.rb +12 -13
  78. data/lib/sass/tree/at_root_node.rb +82 -0
  79. data/lib/sass/tree/comment_node.rb +3 -3
  80. data/lib/sass/tree/css_import_node.rb +11 -11
  81. data/lib/sass/tree/debug_node.rb +2 -2
  82. data/lib/sass/tree/directive_node.rb +13 -2
  83. data/lib/sass/tree/each_node.rb +8 -8
  84. data/lib/sass/tree/extend_node.rb +13 -6
  85. data/lib/sass/tree/for_node.rb +4 -4
  86. data/lib/sass/tree/function_node.rb +5 -4
  87. data/lib/sass/tree/if_node.rb +1 -1
  88. data/lib/sass/tree/import_node.rb +4 -5
  89. data/lib/sass/tree/media_node.rb +4 -14
  90. data/lib/sass/tree/mixin_def_node.rb +4 -4
  91. data/lib/sass/tree/mixin_node.rb +21 -8
  92. data/lib/sass/tree/node.rb +29 -12
  93. data/lib/sass/tree/prop_node.rb +38 -18
  94. data/lib/sass/tree/return_node.rb +3 -2
  95. data/lib/sass/tree/root_node.rb +19 -3
  96. data/lib/sass/tree/rule_node.rb +25 -17
  97. data/lib/sass/tree/supports_node.rb +0 -13
  98. data/lib/sass/tree/trace_node.rb +2 -1
  99. data/lib/sass/tree/variable_node.rb +9 -3
  100. data/lib/sass/tree/visitors/base.rb +6 -6
  101. data/lib/sass/tree/visitors/check_nesting.rb +12 -9
  102. data/lib/sass/tree/visitors/convert.rb +63 -38
  103. data/lib/sass/tree/visitors/cssize.rb +63 -23
  104. data/lib/sass/tree/visitors/deep_copy.rb +6 -5
  105. data/lib/sass/tree/visitors/extend.rb +7 -7
  106. data/lib/sass/tree/visitors/perform.rb +256 -151
  107. data/lib/sass/tree/visitors/set_options.rb +6 -6
  108. data/lib/sass/tree/visitors/to_css.rb +231 -81
  109. data/lib/sass/tree/warn_node.rb +2 -2
  110. data/lib/sass/tree/while_node.rb +2 -2
  111. data/lib/sass/util/multibyte_string_scanner.rb +2 -0
  112. data/lib/sass/util/normalized_map.rb +65 -0
  113. data/lib/sass/util/ordered_hash.rb +188 -0
  114. data/lib/sass/util/subset_map.rb +3 -2
  115. data/lib/sass/util/test.rb +9 -0
  116. data/lib/sass/util.rb +220 -34
  117. data/lib/sass/version.rb +9 -9
  118. data/lib/sass.rb +14 -7
  119. data/test/sass/compiler_test.rb +213 -0
  120. data/test/sass/conversion_test.rb +235 -9
  121. data/test/sass/engine_test.rb +230 -60
  122. data/test/sass/exec_test.rb +86 -0
  123. data/test/sass/extend_test.rb +215 -147
  124. data/test/sass/functions_test.rb +584 -99
  125. data/test/sass/importer_test.rb +165 -17
  126. data/test/sass/plugin_test.rb +19 -13
  127. data/test/sass/script_conversion_test.rb +40 -0
  128. data/test/sass/script_test.rb +231 -21
  129. data/test/sass/scss/css_test.rb +14 -5
  130. data/test/sass/scss/scss_test.rb +1266 -66
  131. data/test/sass/source_map_test.rb +879 -0
  132. data/test/sass/templates/bork5.sass +3 -0
  133. data/test/sass/util/normalized_map_test.rb +30 -0
  134. data/test/sass/util_test.rb +90 -0
  135. data/test/sass/value_helpers_test.rb +181 -0
  136. data/test/test_helper.rb +7 -2
  137. metadata +316 -291
  138. data/lib/sass/script/bool.rb +0 -18
  139. data/lib/sass/script/funcall.rb +0 -231
  140. data/lib/sass/script/list.rb +0 -84
  141. data/lib/sass/script/literal.rb +0 -239
  142. data/lib/sass/script/null.rb +0 -34
  143. data/lib/sass/script/variable.rb +0 -58
  144. data/test/Gemfile +0 -3
  145. data/vendor/listen/CHANGELOG.md +0 -221
  146. data/vendor/listen/CONTRIBUTING.md +0 -38
  147. data/vendor/listen/Gemfile +0 -30
  148. data/vendor/listen/Guardfile +0 -8
  149. data/vendor/listen/LICENSE +0 -20
  150. data/vendor/listen/README.md +0 -315
  151. data/vendor/listen/Rakefile +0 -47
  152. data/vendor/listen/Vagrantfile +0 -96
  153. data/vendor/listen/lib/listen/adapter.rb +0 -214
  154. data/vendor/listen/lib/listen/adapters/bsd.rb +0 -112
  155. data/vendor/listen/lib/listen/adapters/darwin.rb +0 -85
  156. data/vendor/listen/lib/listen/adapters/linux.rb +0 -113
  157. data/vendor/listen/lib/listen/adapters/polling.rb +0 -67
  158. data/vendor/listen/lib/listen/adapters/windows.rb +0 -87
  159. data/vendor/listen/lib/listen/dependency_manager.rb +0 -126
  160. data/vendor/listen/lib/listen/directory_record.rb +0 -371
  161. data/vendor/listen/lib/listen/listener.rb +0 -225
  162. data/vendor/listen/lib/listen/multi_listener.rb +0 -143
  163. data/vendor/listen/lib/listen/turnstile.rb +0 -28
  164. data/vendor/listen/lib/listen/version.rb +0 -3
  165. data/vendor/listen/lib/listen.rb +0 -40
  166. data/vendor/listen/listen.gemspec +0 -22
  167. data/vendor/listen/spec/listen/adapter_spec.rb +0 -183
  168. data/vendor/listen/spec/listen/adapters/bsd_spec.rb +0 -36
  169. data/vendor/listen/spec/listen/adapters/darwin_spec.rb +0 -37
  170. data/vendor/listen/spec/listen/adapters/linux_spec.rb +0 -47
  171. data/vendor/listen/spec/listen/adapters/polling_spec.rb +0 -68
  172. data/vendor/listen/spec/listen/adapters/windows_spec.rb +0 -30
  173. data/vendor/listen/spec/listen/dependency_manager_spec.rb +0 -107
  174. data/vendor/listen/spec/listen/directory_record_spec.rb +0 -1225
  175. data/vendor/listen/spec/listen/listener_spec.rb +0 -169
  176. data/vendor/listen/spec/listen/multi_listener_spec.rb +0 -174
  177. data/vendor/listen/spec/listen/turnstile_spec.rb +0 -56
  178. data/vendor/listen/spec/listen_spec.rb +0 -73
  179. data/vendor/listen/spec/spec_helper.rb +0 -21
  180. data/vendor/listen/spec/support/adapter_helper.rb +0 -629
  181. data/vendor/listen/spec/support/directory_record_helper.rb +0 -55
  182. data/vendor/listen/spec/support/fixtures_helper.rb +0 -29
  183. data/vendor/listen/spec/support/listeners_helper.rb +0 -156
  184. data/vendor/listen/spec/support/platform_helper.rb +0 -15
@@ -0,0 +1,41 @@
1
+ require 'set'
2
+ module Sass
3
+ # Provides `Sass.has_feature?` which allows for simple feature detection
4
+ # by providing a feature name.
5
+ module Features
6
+
7
+ # This is the set of features that can be detected.
8
+ KNOWN_FEATURES = Set[*%w{
9
+ }]
10
+
11
+ # Check if a feature exists by name. This is used to implement
12
+ # the Sass function `feature-exists($feature)`
13
+ #
14
+ # @param feature_name [String] The case sensitive name of the feature to
15
+ # check if it exists in this version of Sass.
16
+ # @return [Boolean] whether the feature of that name exists.
17
+ def has_feature?(feature_name)
18
+ KNOWN_FEATURES.include?(feature_name)
19
+ end
20
+
21
+ # Add a feature to Sass. Plugins can use this to easily expose their
22
+ # availability to end users. Plugins must prefix their feature
23
+ # names with a dash to distinguish them from official features.
24
+ #
25
+ # @example
26
+ # Sass.add_feature("-import-globbing")
27
+ # Sass.add_feature("-math-cos")
28
+ #
29
+ #
30
+ # @param feature_name [String] The case sensitive name of the feature to
31
+ # to add to Sass. Must begin with a dash.
32
+ def add_feature(feature_name)
33
+ unless feature_name[0] == ?-
34
+ raise ArgumentError.new("Plugin feature names must begin with a dash")
35
+ end
36
+ KNOWN_FEATURES << feature_name
37
+ end
38
+ end
39
+
40
+ extend Features
41
+ end
@@ -122,6 +122,18 @@ module Sass
122
122
  Sass::Util.abstract(self)
123
123
  end
124
124
 
125
+ # Get the publicly-visible URL for an imported file. This URL is used by
126
+ # source maps to link to the source stylesheet. This may return `nil` to
127
+ # indicate that no public URL is available; however, this will cause
128
+ # sourcemap generation to fail if any CSS is generated from files imported
129
+ # from this importer.
130
+ #
131
+ # @param uri [String] A URI known to be valid for this importer.
132
+ # @return [String?] The publicly-visible URL for this file.
133
+ def public_url(uri)
134
+ nil
135
+ end
136
+
125
137
  # A string representation of the importer.
126
138
  # Should be overridden by subclasses.
127
139
  #
@@ -132,8 +144,27 @@ module Sass
132
144
  def to_s
133
145
  Sass::Util.abstract(self)
134
146
  end
147
+
148
+ # If the importer is based on files on the local filesystem
149
+ # this method should return folders which should be watched
150
+ # for changes.
151
+ #
152
+ # @return [Array<String>] List of absolute paths of directories to watch
153
+ def directories_to_watch
154
+ []
155
+ end
156
+
157
+ # If this importer is based on files on the local filesystem This method
158
+ # should return true if the file, when changed, should trigger a
159
+ # recompile.
160
+ #
161
+ # It is acceptable for non-sass files to be watched and trigger a recompile.
162
+ #
163
+ # @param filename [String] The absolute filename for a file that has changed.
164
+ # @return [Boolean] When the file changed should cause a recompile.
165
+ def watched_file?(filename)
166
+ false
167
+ end
135
168
  end
136
169
  end
137
170
  end
138
-
139
-
@@ -0,0 +1,45 @@
1
+ module Sass
2
+ module Importers
3
+ # This importer emits a deprecation warning the first time it is used to
4
+ # import a file. It is used to deprecate the current working
5
+ # directory from the list of automatic sass load paths.
6
+ class DeprecatedPath < Filesystem
7
+
8
+ # @param root [String] The absolute, expanded path to the folder that is deprecated.
9
+ def initialize(root)
10
+ @specified_root = root
11
+ @warning_given = false
12
+ super
13
+ end
14
+
15
+ # @see Sass::Importers::Base#find
16
+ def find(*args)
17
+ found = super
18
+ if found && !@warning_given
19
+ @warning_given = true
20
+ Sass::Util.sass_warn deprecation_warning
21
+ end
22
+ found
23
+ end
24
+
25
+ # @see Sass::Importers::Base#to_s
26
+ def to_s
27
+ "#{@root} (DEPRECATED)"
28
+ end
29
+
30
+ protected
31
+
32
+ # @return [String] The deprecation warning that will be printed the first
33
+ # time an import occurs.
34
+ def deprecation_warning
35
+ path = @specified_root == "." ? "the current working directory" : @specified_root
36
+ <<WARNING
37
+ DEPRECATION WARNING: Importing from #{path} will not be
38
+ automatic in future versions of Sass. To avoid future errors, you can add it
39
+ to your environment explicitly by setting `SASSPATH=#{@specified_root}`, by using the -I command
40
+ line option, or by changing your Sass configuration options.
41
+ WARNING
42
+ end
43
+ end
44
+ end
45
+ end
@@ -39,7 +39,7 @@ module Sass
39
39
  # @see Base#key
40
40
  def key(name, options)
41
41
  [self.class.name + ":" + File.dirname(File.expand_path(name)),
42
- File.basename(name)]
42
+ File.basename(name)]
43
43
  end
44
44
 
45
45
  # @see Base#to_s
@@ -55,6 +55,17 @@ module Sass
55
55
  root.eql?(other.root)
56
56
  end
57
57
 
58
+ # @see Base#directories_to_watch
59
+ def directories_to_watch
60
+ [root]
61
+ end
62
+
63
+ # @see Base#watched_file?
64
+ def watched_file?(filename)
65
+ filename =~ /\.s[ac]ss$/ &&
66
+ filename.start_with?(root + File::SEPARATOR)
67
+ end
68
+
58
69
  protected
59
70
 
60
71
  # If a full uri is passed, this removes the root from it
@@ -98,7 +109,7 @@ module Sass
98
109
  end
99
110
 
100
111
  # JRuby chokes when trying to import files from JARs when the path starts with './'.
101
- ret.map {|f, s| [f.sub(%r{^\./}, ''), s]}
112
+ ret.map {|f, s| [f.sub(/^\.\//, ''), s]}
102
113
  end
103
114
 
104
115
  def escape_glob_characters(name)
@@ -107,7 +118,7 @@ module Sass
107
118
  end
108
119
  end
109
120
 
110
- REDUNDANT_DIRECTORY = %r{#{Regexp.escape(File::SEPARATOR)}\.#{Regexp.escape(File::SEPARATOR)}}
121
+ REDUNDANT_DIRECTORY = /#{Regexp.escape(File::SEPARATOR)}\.#{Regexp.escape(File::SEPARATOR)}/
111
122
  # Given a base directory and an `@import`ed name,
112
123
  # finds an existant file that matches the name.
113
124
  #
@@ -119,7 +130,7 @@ module Sass
119
130
  dir = dir.gsub(File::ALT_SEPARATOR, File::SEPARATOR) unless File::ALT_SEPARATOR.nil?
120
131
 
121
132
  found = possible_files(remove_root(name)).map do |f, s|
122
- path = (dir == "." || Pathname.new(f).absolute?) ? f : "#{dir}/#{f}"
133
+ path = dir == "." || Pathname.new(f).absolute? ? f : "#{dir}/#{f}"
123
134
  Dir[path].map do |full_path|
124
135
  full_path.gsub!(REDUNDANT_DIRECTORY, File::SEPARATOR)
125
136
  [full_path, s]
@@ -131,19 +142,19 @@ module Sass
131
142
  if found.size > 1 && !@same_name_warnings.include?(found.first.first)
132
143
  found.each {|(f, _)| @same_name_warnings << f}
133
144
  relative_to = Pathname.new(dir)
134
- if options[:_line]
145
+ if options[:_from_import_node]
135
146
  # If _line exists, we're here due to an actual import in an
136
147
  # import_node and we want to print a warning for a user writing an
137
148
  # ambiguous import.
138
- candidates = found.map {|(f, _)| " " + Pathname.new(f).relative_path_from(relative_to).to_s}.join("\n")
139
- Sass::Util.sass_warn <<WARNING
140
- WARNING: On line #{options[:_line]}#{" of #{options[:filename]}" if options[:filename]}:
141
- It's not clear which file to import for '@import "#{name}"'.
142
- Candidates:
149
+ candidates = found.map do |(f, _)|
150
+ " " + Pathname.new(f).relative_path_from(relative_to).to_s
151
+ end.join("\n")
152
+ raise Sass::SyntaxError.new(<<MESSAGE)
153
+ It's not clear which file to import for '@import "#{name}"'.
154
+ Candidates:
143
155
  #{candidates}
144
- For now I'll choose #{File.basename found.first.first}.
145
- This will be an error in future versions of Sass.
146
- WARNING
156
+ Please delete or rename all but one of these files.
157
+ MESSAGE
147
158
  else
148
159
  # Otherwise, we're here via StalenessChecker, and we want to print a
149
160
  # warning for a user running `sass --watch` with two ambiguous files.
@@ -163,7 +174,7 @@ WARNING
163
174
  def split(name)
164
175
  extension = nil
165
176
  dirname, basename = File.dirname(name), File.basename(name)
166
- if basename =~ /^(.*)\.(#{extensions.keys.map{|e| Regexp.escape(e)}.join('|')})$/
177
+ if basename =~ /^(.*)\.(#{extensions.keys.map {|e| Regexp.escape(e)}.join('|')})$/
167
178
  basename = $1
168
179
  extension = $2
169
180
  end
@@ -20,3 +20,4 @@ end
20
20
 
21
21
  require 'sass/importers/base'
22
22
  require 'sass/importers/filesystem'
23
+ require 'sass/importers/deprecated_path'
@@ -1,7 +1,7 @@
1
1
  require 'sass/logger/log_level'
2
2
 
3
3
  class Sass::Logger::Base
4
-
4
+
5
5
  include Sass::Logger::LogLevel
6
6
 
7
7
  attr_accessor :log_level
@@ -22,11 +22,11 @@ class Sass::Logger::Base
22
22
  end
23
23
 
24
24
  def log(level, message)
25
- self._log(level, message) if logging_level?(level)
25
+ _log(level, message) if logging_level?(level)
26
26
  end
27
27
 
28
28
  def _log(level, message)
29
- Kernel::warn(message)
29
+ Kernel.warn(message)
30
30
  end
31
31
 
32
32
  end
@@ -5,20 +5,18 @@ module Sass
5
5
  def self.included(base)
6
6
  base.extend(ClassMethods)
7
7
  end
8
-
8
+
9
9
  module ClassMethods
10
10
  def inherited(subclass)
11
11
  subclass.log_levels = subclass.superclass.log_levels.dup
12
12
  end
13
13
 
14
+ attr_writer :log_levels
15
+
14
16
  def log_levels
15
17
  @log_levels ||= {}
16
18
  end
17
19
 
18
- def log_levels=(levels)
19
- @log_levels = levels
20
- end
21
-
22
20
  def log_level?(level, min_level)
23
21
  log_levels[level] >= log_levels[min_level]
24
22
  end
@@ -43,7 +41,7 @@ module Sass
43
41
  RUBY
44
42
  end
45
43
  end
46
-
44
+
47
45
  end
48
46
  end
49
47
  end
data/lib/sass/media.rb CHANGED
@@ -2,7 +2,7 @@
2
2
  module Sass::Media
3
3
  # A comma-separated list of queries.
4
4
  #
5
- # media_query [ ',' S* media_query ]*
5
+ # media_query [ ',' S* media_query ]*
6
6
  class QueryList
7
7
  # The queries contained in this list.
8
8
  #
@@ -43,11 +43,11 @@ module Sass::Media
43
43
  end
44
44
 
45
45
  # Returns a representation of the query as an array of strings and
46
- # potentially {Sass::Script::Node}s (if there's interpolation in it). When
47
- # the interpolation is resolved and the strings are joined together, this
48
- # will be the string representation of this query.
46
+ # potentially {Sass::Script::Tree::Node}s (if there's interpolation in it).
47
+ # When the interpolation is resolved and the strings are joined together,
48
+ # this will be the string representation of this query.
49
49
  #
50
- # @return [Array<String, Sass::Script::Node>]
50
+ # @return [Array<String, Sass::Script::Tree::Node>]
51
51
  def to_a
52
52
  Sass::Util.intersperse(queries.map {|q| q.to_a}, ', ').flatten
53
53
  end
@@ -62,7 +62,7 @@ module Sass::Media
62
62
 
63
63
  # A single media query.
64
64
  #
65
- # [ [ONLY | NOT]? S* media_type S* | expression ] [ AND S* expression ]*
65
+ # [ [ONLY | NOT]? S* media_type S* | expression ] [ AND S* expression ]*
66
66
  class Query
67
67
  # The modifier for the query.
68
68
  #
@@ -70,7 +70,7 @@ module Sass::Media
70
70
  # parsed as CSS, it contains a single string (accessible via
71
71
  # \{#resolved_modifier}).
72
72
  #
73
- # @return [Array<String, Sass::Script::Node>]
73
+ # @return [Array<String, Sass::Script::Tree::Node>]
74
74
  attr_accessor :modifier
75
75
 
76
76
  # The type of the query (e.g. `"screen"` or `"print"`).
@@ -79,7 +79,7 @@ module Sass::Media
79
79
  # parsed as CSS, it contains a single string (accessible via
80
80
  # \{#resolved_type}).
81
81
  #
82
- # @return [Array<String, Sass::Script::Node>]
82
+ # @return [Array<String, Sass::Script::Tree::Node>]
83
83
  attr_accessor :type
84
84
 
85
85
  # The trailing expressions in the query.
@@ -87,12 +87,12 @@ module Sass::Media
87
87
  # When parsed as Sass code, each expression contains strings and SassScript
88
88
  # nodes. When parsed as CSS, each one contains a single string.
89
89
  #
90
- # @return [Array<Array<String, Sass::Script::Node>>]
90
+ # @return [Array<Array<String, Sass::Script::Tree::Node>>]
91
91
  attr_accessor :expressions
92
92
 
93
- # @param modifier [Array<String, Sass::Script::Node>] See \{#modifier}
94
- # @param type [Array<String, Sass::Script::Node>] See \{#type}
95
- # @param expressions [Array<Array<String, Sass::Script::Node>>] See \{#expressions}
93
+ # @param modifier [Array<String, Sass::Script::Tree::Node>] See \{#modifier}
94
+ # @param type [Array<String, Sass::Script::Tree::Node>] See \{#type}
95
+ # @param expressions [Array<Array<String, Sass::Script::Tree::Node>>] See \{#expressions}
96
96
  def initialize(modifier, type, expressions)
97
97
  @modifier = modifier
98
98
  @type = type
@@ -125,7 +125,7 @@ module Sass::Media
125
125
  m2, t2 = other.resolved_modifier.downcase, other.resolved_type.downcase
126
126
  t1 = t2 if t1.empty?
127
127
  t2 = t1 if t2.empty?
128
- if ((m1 == 'not') ^ (m2 == 'not'))
128
+ if (m1 == 'not') ^ (m2 == 'not')
129
129
  return if t1 == t2
130
130
  type = m1 == 'not' ? t2 : t1
131
131
  mod = m1 == 'not' ? m2 : m1
@@ -140,7 +140,7 @@ module Sass::Media
140
140
  type = t1
141
141
  mod = m1.empty? ? m2 : m1
142
142
  end
143
- return Query.new([mod], [type], other.expressions + expressions)
143
+ Query.new([mod], [type], other.expressions + expressions)
144
144
  end
145
145
 
146
146
  # Returns the CSS for the media query.
@@ -156,7 +156,7 @@ module Sass::Media
156
156
  # It's possible for there to be script nodes in Expressions even when
157
157
  # we're converting to CSS in the case where we parsed the document as
158
158
  # CSS originally (as in css_test.rb).
159
- e.map {|c| c.is_a?(Sass::Script::Node) ? c.to_sass : c.to_s}.join
159
+ e.map {|c| c.is_a?(Sass::Script::Tree::Node) ? c.to_sass : c.to_s}.join
160
160
  end.join(' and ')
161
161
  css
162
162
  end
@@ -193,15 +193,15 @@ module Sass::Media
193
193
  # @return [Query]
194
194
  def deep_copy
195
195
  Query.new(
196
- modifier.map {|c| c.is_a?(Sass::Script::Node) ? c.deep_copy : c},
197
- type.map {|c| c.is_a?(Sass::Script::Node) ? c.deep_copy : c},
198
- expressions.map {|e| e.map {|c| c.is_a?(Sass::Script::Node) ? c.deep_copy : c}})
196
+ modifier.map {|c| c.is_a?(Sass::Script::Tree::Node) ? c.deep_copy : c},
197
+ type.map {|c| c.is_a?(Sass::Script::Tree::Node) ? c.deep_copy : c},
198
+ expressions.map {|e| e.map {|c| c.is_a?(Sass::Script::Tree::Node) ? c.deep_copy : c}})
199
199
  end
200
200
  end
201
201
 
202
202
  # Converts an interpolation array to source.
203
203
  #
204
- # @param [Array<String, Sass::Script::Node>] The interpolation array to convert.
204
+ # @param interp [Array<String, Sass::Script::Tree::Node>] The interpolation array to convert.
205
205
  # @param options [{Symbol => Object}] An options hash (see {Sass::CSS#initialize}).
206
206
  # @return [String]
207
207
  def self._interp_to_src(interp, options)