sass 3.4.25 → 3.7.4

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 (237) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +1 -1
  3. data/CONTRIBUTING.md +3 -3
  4. data/README.md +17 -9
  5. data/VERSION +1 -1
  6. data/VERSION_DATE +1 -1
  7. data/VERSION_NAME +1 -1
  8. data/extra/sass-spec-ref.sh +9 -1
  9. data/lib/sass.rb +0 -7
  10. data/lib/sass/cache_stores/filesystem.rb +1 -1
  11. data/lib/sass/css.rb +1 -2
  12. data/lib/sass/engine.rb +39 -29
  13. data/lib/sass/environment.rb +26 -5
  14. data/lib/sass/error.rb +2 -2
  15. data/lib/sass/exec/base.rb +2 -13
  16. data/lib/sass/exec/sass_scss.rb +1 -5
  17. data/lib/sass/features.rb +1 -0
  18. data/lib/sass/importers/filesystem.rb +6 -4
  19. data/lib/sass/logger/base.rb +11 -0
  20. data/lib/sass/plugin/compiler.rb +20 -50
  21. data/lib/sass/plugin/configuration.rb +2 -2
  22. data/lib/sass/railtie.rb +1 -1
  23. data/lib/sass/script/css_parser.rb +4 -1
  24. data/lib/sass/script/functions.rb +308 -81
  25. data/lib/sass/script/lexer.rb +63 -9
  26. data/lib/sass/script/parser.rb +287 -118
  27. data/lib/sass/script/tree/funcall.rb +35 -34
  28. data/lib/sass/script/tree/interpolation.rb +0 -3
  29. data/lib/sass/script/tree/list_literal.rb +23 -8
  30. data/lib/sass/script/tree/map_literal.rb +2 -2
  31. data/lib/sass/script/tree/node.rb +0 -8
  32. data/lib/sass/script/tree/operation.rb +1 -8
  33. data/lib/sass/script/value.rb +2 -0
  34. data/lib/sass/script/value/arg_list.rb +1 -1
  35. data/lib/sass/script/value/base.rb +17 -0
  36. data/lib/sass/script/value/callable.rb +25 -0
  37. data/lib/sass/script/value/color.rb +8 -2
  38. data/lib/sass/script/value/function.rb +19 -0
  39. data/lib/sass/script/value/helpers.rb +37 -11
  40. data/lib/sass/script/value/list.rb +35 -14
  41. data/lib/sass/script/value/map.rb +2 -2
  42. data/lib/sass/script/value/number.rb +3 -2
  43. data/lib/sass/scss/css_parser.rb +6 -1
  44. data/lib/sass/scss/parser.rb +145 -56
  45. data/lib/sass/scss/rx.rb +5 -11
  46. data/lib/sass/scss/static_parser.rb +20 -42
  47. data/lib/sass/selector.rb +4 -0
  48. data/lib/sass/selector/abstract_sequence.rb +7 -6
  49. data/lib/sass/selector/comma_sequence.rb +9 -5
  50. data/lib/sass/selector/pseudo.rb +20 -3
  51. data/lib/sass/selector/sequence.rb +35 -10
  52. data/lib/sass/selector/simple.rb +9 -2
  53. data/lib/sass/selector/simple_sequence.rb +8 -4
  54. data/lib/sass/source/map.rb +2 -6
  55. data/lib/sass/stack.rb +21 -1
  56. data/lib/sass/tree/charset_node.rb +1 -1
  57. data/lib/sass/tree/prop_node.rb +45 -53
  58. data/lib/sass/tree/rule_node.rb +6 -8
  59. data/lib/sass/tree/visitors/check_nesting.rb +1 -1
  60. data/lib/sass/tree/visitors/convert.rb +2 -3
  61. data/lib/sass/tree/visitors/cssize.rb +4 -15
  62. data/lib/sass/tree/visitors/deep_copy.rb +1 -1
  63. data/lib/sass/tree/visitors/extend.rb +2 -8
  64. data/lib/sass/tree/visitors/perform.rb +23 -15
  65. data/lib/sass/tree/visitors/set_options.rb +1 -1
  66. data/lib/sass/tree/visitors/to_css.rb +49 -22
  67. data/lib/sass/util.rb +72 -310
  68. data/lib/sass/util/multibyte_string_scanner.rb +127 -131
  69. data/lib/sass/util/normalized_map.rb +1 -8
  70. data/lib/sass/version.rb +0 -4
  71. metadata +55 -202
  72. data/Rakefile +0 -453
  73. data/lib/sass/script/css_variable_warning.rb +0 -52
  74. data/lib/sass/util/cross_platform_random.rb +0 -19
  75. data/lib/sass/util/ordered_hash.rb +0 -192
  76. data/test/sass-spec.yml +0 -3
  77. data/test/sass/cache_test.rb +0 -131
  78. data/test/sass/callbacks_test.rb +0 -61
  79. data/test/sass/compiler_test.rb +0 -236
  80. data/test/sass/conversion_test.rb +0 -2188
  81. data/test/sass/css2sass_test.rb +0 -526
  82. data/test/sass/css_variable_test.rb +0 -132
  83. data/test/sass/data/hsl-rgb.txt +0 -319
  84. data/test/sass/encoding_test.rb +0 -219
  85. data/test/sass/engine_test.rb +0 -3447
  86. data/test/sass/exec_test.rb +0 -96
  87. data/test/sass/extend_test.rb +0 -1733
  88. data/test/sass/fixtures/test_staleness_check_across_importers.css +0 -1
  89. data/test/sass/fixtures/test_staleness_check_across_importers.scss +0 -1
  90. data/test/sass/functions_test.rb +0 -1977
  91. data/test/sass/importer_test.rb +0 -421
  92. data/test/sass/logger_test.rb +0 -58
  93. data/test/sass/mock_importer.rb +0 -49
  94. data/test/sass/more_results/more1.css +0 -9
  95. data/test/sass/more_results/more1_with_line_comments.css +0 -26
  96. data/test/sass/more_results/more_import.css +0 -29
  97. data/test/sass/more_templates/_more_partial.sass +0 -2
  98. data/test/sass/more_templates/more1.sass +0 -23
  99. data/test/sass/more_templates/more_import.sass +0 -11
  100. data/test/sass/plugin_test.rb +0 -556
  101. data/test/sass/results/alt.css +0 -4
  102. data/test/sass/results/basic.css +0 -9
  103. data/test/sass/results/cached_import_option.css +0 -3
  104. data/test/sass/results/compact.css +0 -5
  105. data/test/sass/results/complex.css +0 -86
  106. data/test/sass/results/compressed.css +0 -1
  107. data/test/sass/results/expanded.css +0 -19
  108. data/test/sass/results/filename_fn.css +0 -3
  109. data/test/sass/results/if.css +0 -3
  110. data/test/sass/results/import.css +0 -31
  111. data/test/sass/results/import_charset.css +0 -5
  112. data/test/sass/results/import_charset_1_8.css +0 -5
  113. data/test/sass/results/import_charset_ibm866.css +0 -5
  114. data/test/sass/results/import_content.css +0 -1
  115. data/test/sass/results/line_numbers.css +0 -49
  116. data/test/sass/results/mixins.css +0 -95
  117. data/test/sass/results/multiline.css +0 -24
  118. data/test/sass/results/nested.css +0 -22
  119. data/test/sass/results/options.css +0 -1
  120. data/test/sass/results/parent_ref.css +0 -13
  121. data/test/sass/results/script.css +0 -16
  122. data/test/sass/results/scss_import.css +0 -31
  123. data/test/sass/results/scss_importee.css +0 -2
  124. data/test/sass/results/subdir/nested_subdir/nested_subdir.css +0 -1
  125. data/test/sass/results/subdir/subdir.css +0 -3
  126. data/test/sass/results/units.css +0 -11
  127. data/test/sass/results/warn.css +0 -0
  128. data/test/sass/results/warn_imported.css +0 -0
  129. data/test/sass/script_conversion_test.rb +0 -357
  130. data/test/sass/script_test.rb +0 -1431
  131. data/test/sass/scss/css_test.rb +0 -1281
  132. data/test/sass/scss/rx_test.rb +0 -160
  133. data/test/sass/scss/scss_test.rb +0 -4205
  134. data/test/sass/scss/test_helper.rb +0 -37
  135. data/test/sass/source_map_test.rb +0 -1055
  136. data/test/sass/superselector_test.rb +0 -210
  137. data/test/sass/templates/_cached_import_option_partial.scss +0 -1
  138. data/test/sass/templates/_double_import_loop2.sass +0 -1
  139. data/test/sass/templates/_filename_fn_import.scss +0 -11
  140. data/test/sass/templates/_imported_charset_ibm866.sass +0 -4
  141. data/test/sass/templates/_imported_charset_utf8.sass +0 -4
  142. data/test/sass/templates/_imported_content.sass +0 -3
  143. data/test/sass/templates/_partial.sass +0 -2
  144. data/test/sass/templates/_same_name_different_partiality.scss +0 -1
  145. data/test/sass/templates/alt.sass +0 -16
  146. data/test/sass/templates/basic.sass +0 -23
  147. data/test/sass/templates/bork1.sass +0 -2
  148. data/test/sass/templates/bork2.sass +0 -2
  149. data/test/sass/templates/bork3.sass +0 -2
  150. data/test/sass/templates/bork4.sass +0 -2
  151. data/test/sass/templates/bork5.sass +0 -3
  152. data/test/sass/templates/cached_import_option.scss +0 -3
  153. data/test/sass/templates/compact.sass +0 -17
  154. data/test/sass/templates/complex.sass +0 -305
  155. data/test/sass/templates/compressed.sass +0 -15
  156. data/test/sass/templates/double_import_loop1.sass +0 -1
  157. data/test/sass/templates/expanded.sass +0 -17
  158. data/test/sass/templates/filename_fn.scss +0 -18
  159. data/test/sass/templates/if.sass +0 -11
  160. data/test/sass/templates/import.sass +0 -12
  161. data/test/sass/templates/import_charset.sass +0 -9
  162. data/test/sass/templates/import_charset_1_8.sass +0 -6
  163. data/test/sass/templates/import_charset_ibm866.sass +0 -11
  164. data/test/sass/templates/import_content.sass +0 -4
  165. data/test/sass/templates/importee.less +0 -2
  166. data/test/sass/templates/importee.sass +0 -19
  167. data/test/sass/templates/line_numbers.sass +0 -13
  168. data/test/sass/templates/mixin_bork.sass +0 -5
  169. data/test/sass/templates/mixins.sass +0 -76
  170. data/test/sass/templates/multiline.sass +0 -20
  171. data/test/sass/templates/nested.sass +0 -25
  172. data/test/sass/templates/nested_bork1.sass +0 -2
  173. data/test/sass/templates/nested_bork2.sass +0 -2
  174. data/test/sass/templates/nested_bork3.sass +0 -2
  175. data/test/sass/templates/nested_bork4.sass +0 -2
  176. data/test/sass/templates/nested_import.sass +0 -2
  177. data/test/sass/templates/nested_mixin_bork.sass +0 -6
  178. data/test/sass/templates/options.sass +0 -2
  179. data/test/sass/templates/parent_ref.sass +0 -25
  180. data/test/sass/templates/same_name_different_ext.sass +0 -2
  181. data/test/sass/templates/same_name_different_ext.scss +0 -1
  182. data/test/sass/templates/same_name_different_partiality.scss +0 -1
  183. data/test/sass/templates/script.sass +0 -101
  184. data/test/sass/templates/scss_import.scss +0 -12
  185. data/test/sass/templates/scss_importee.scss +0 -1
  186. data/test/sass/templates/single_import_loop.sass +0 -1
  187. data/test/sass/templates/subdir/import_up1.scss +0 -1
  188. data/test/sass/templates/subdir/import_up2.scss +0 -1
  189. data/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +0 -2
  190. data/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +0 -3
  191. data/test/sass/templates/subdir/subdir.sass +0 -6
  192. data/test/sass/templates/units.sass +0 -11
  193. data/test/sass/templates/warn.sass +0 -3
  194. data/test/sass/templates/warn_imported.sass +0 -4
  195. data/test/sass/test_helper.rb +0 -8
  196. data/test/sass/util/multibyte_string_scanner_test.rb +0 -155
  197. data/test/sass/util/normalized_map_test.rb +0 -51
  198. data/test/sass/util/subset_map_test.rb +0 -91
  199. data/test/sass/util_test.rb +0 -438
  200. data/test/sass/value_helpers_test.rb +0 -179
  201. data/test/test_helper.rb +0 -110
  202. data/vendor/listen/CHANGELOG.md +0 -1
  203. data/vendor/listen/CONTRIBUTING.md +0 -38
  204. data/vendor/listen/Gemfile +0 -20
  205. data/vendor/listen/Guardfile +0 -8
  206. data/vendor/listen/LICENSE +0 -20
  207. data/vendor/listen/README.md +0 -349
  208. data/vendor/listen/Rakefile +0 -5
  209. data/vendor/listen/Vagrantfile +0 -96
  210. data/vendor/listen/lib/listen.rb +0 -54
  211. data/vendor/listen/lib/listen/adapter.rb +0 -327
  212. data/vendor/listen/lib/listen/adapters/bsd.rb +0 -75
  213. data/vendor/listen/lib/listen/adapters/darwin.rb +0 -48
  214. data/vendor/listen/lib/listen/adapters/linux.rb +0 -81
  215. data/vendor/listen/lib/listen/adapters/polling.rb +0 -58
  216. data/vendor/listen/lib/listen/adapters/windows.rb +0 -91
  217. data/vendor/listen/lib/listen/directory_record.rb +0 -406
  218. data/vendor/listen/lib/listen/listener.rb +0 -323
  219. data/vendor/listen/lib/listen/turnstile.rb +0 -32
  220. data/vendor/listen/lib/listen/version.rb +0 -3
  221. data/vendor/listen/listen.gemspec +0 -28
  222. data/vendor/listen/spec/listen/adapter_spec.rb +0 -149
  223. data/vendor/listen/spec/listen/adapters/bsd_spec.rb +0 -36
  224. data/vendor/listen/spec/listen/adapters/darwin_spec.rb +0 -37
  225. data/vendor/listen/spec/listen/adapters/linux_spec.rb +0 -47
  226. data/vendor/listen/spec/listen/adapters/polling_spec.rb +0 -68
  227. data/vendor/listen/spec/listen/adapters/windows_spec.rb +0 -30
  228. data/vendor/listen/spec/listen/directory_record_spec.rb +0 -1250
  229. data/vendor/listen/spec/listen/listener_spec.rb +0 -258
  230. data/vendor/listen/spec/listen/turnstile_spec.rb +0 -56
  231. data/vendor/listen/spec/listen_spec.rb +0 -67
  232. data/vendor/listen/spec/spec_helper.rb +0 -25
  233. data/vendor/listen/spec/support/adapter_helper.rb +0 -666
  234. data/vendor/listen/spec/support/directory_record_helper.rb +0 -57
  235. data/vendor/listen/spec/support/fixtures_helper.rb +0 -29
  236. data/vendor/listen/spec/support/listeners_helper.rb +0 -179
  237. data/vendor/listen/spec/support/platform_helper.rb +0 -15
@@ -1,155 +1,151 @@
1
1
  require 'strscan'
2
2
 
3
- if Sass::Util.ruby1_8?
4
- Sass::Util::MultibyteStringScanner = StringScanner
5
- else
6
- if Sass::Util.rbx?
7
- # Rubinius's StringScanner class implements some of its methods in terms of
8
- # others, which causes us to double-count bytes in some cases if we do
9
- # straightforward inheritance. To work around this, we use a delegate class.
10
- require 'delegate'
11
- class Sass::Util::MultibyteStringScanner < DelegateClass(StringScanner)
12
- def initialize(str)
13
- super(StringScanner.new(str))
14
- @mb_pos = 0
15
- @mb_matched_size = nil
16
- @mb_last_pos = nil
17
- end
18
-
19
- def is_a?(klass)
20
- __getobj__.is_a?(klass) || super
21
- end
3
+ if Sass::Util.rbx?
4
+ # Rubinius's StringScanner class implements some of its methods in terms of
5
+ # others, which causes us to double-count bytes in some cases if we do
6
+ # straightforward inheritance. To work around this, we use a delegate class.
7
+ require 'delegate'
8
+ class Sass::Util::MultibyteStringScanner < DelegateClass(StringScanner)
9
+ def initialize(str)
10
+ super(StringScanner.new(str))
11
+ @mb_pos = 0
12
+ @mb_matched_size = nil
13
+ @mb_last_pos = nil
22
14
  end
23
- else
24
- class Sass::Util::MultibyteStringScanner < StringScanner
25
- def initialize(str)
26
- super
27
- @mb_pos = 0
28
- @mb_matched_size = nil
29
- @mb_last_pos = nil
30
- end
15
+
16
+ def is_a?(klass)
17
+ __getobj__.is_a?(klass) || super
31
18
  end
32
19
  end
33
-
34
- # A wrapper of the native StringScanner class that works correctly with
35
- # multibyte character encodings. The native class deals only in bytes, not
36
- # characters, for methods like [#pos] and [#matched_size]. This class deals
37
- # only in characters, instead.
38
- class Sass::Util::MultibyteStringScanner
39
- def self.new(str)
40
- return StringScanner.new(str) if str.ascii_only?
20
+ else
21
+ class Sass::Util::MultibyteStringScanner < StringScanner
22
+ def initialize(str)
41
23
  super
24
+ @mb_pos = 0
25
+ @mb_matched_size = nil
26
+ @mb_last_pos = nil
42
27
  end
28
+ end
29
+ end
43
30
 
44
- alias_method :byte_pos, :pos
45
- alias_method :byte_matched_size, :matched_size
46
-
47
- def check(pattern); _match super; end
48
- def check_until(pattern); _matched super; end
49
- def getch; _forward _match super; end
50
- def match?(pattern); _size check(pattern); end
51
- def matched_size; @mb_matched_size; end
52
- def peek(len); string[@mb_pos, len]; end
53
- alias_method :peep, :peek
54
- def pos; @mb_pos; end
55
- alias_method :pointer, :pos
56
- def rest_size; rest.size; end
57
- def scan(pattern); _forward _match super; end
58
- def scan_until(pattern); _forward _matched super; end
59
- def skip(pattern); _size scan(pattern); end
60
- def skip_until(pattern); _matched _size scan_until(pattern); end
61
-
62
- def get_byte
63
- raise "MultibyteStringScanner doesn't support #get_byte."
64
- end
31
+ # A wrapper of the native StringScanner class that works correctly with
32
+ # multibyte character encodings. The native class deals only in bytes, not
33
+ # characters, for methods like [#pos] and [#matched_size]. This class deals
34
+ # only in characters, instead.
35
+ class Sass::Util::MultibyteStringScanner
36
+ def self.new(str)
37
+ return StringScanner.new(str) if str.ascii_only?
38
+ super
39
+ end
65
40
 
66
- def getbyte
67
- raise "MultibyteStringScanner doesn't support #getbyte."
68
- end
41
+ alias_method :byte_pos, :pos
42
+ alias_method :byte_matched_size, :matched_size
43
+
44
+ def check(pattern); _match super; end
45
+ def check_until(pattern); _matched super; end
46
+ def getch; _forward _match super; end
47
+ def match?(pattern); _size check(pattern); end
48
+ def matched_size; @mb_matched_size; end
49
+ def peek(len); string[@mb_pos, len]; end
50
+ alias_method :peep, :peek
51
+ def pos; @mb_pos; end
52
+ alias_method :pointer, :pos
53
+ def rest_size; rest.size; end
54
+ def scan(pattern); _forward _match super; end
55
+ def scan_until(pattern); _forward _matched super; end
56
+ def skip(pattern); _size scan(pattern); end
57
+ def skip_until(pattern); _matched _size scan_until(pattern); end
58
+
59
+ def get_byte
60
+ raise "MultibyteStringScanner doesn't support #get_byte."
61
+ end
69
62
 
70
- def pos=(n)
71
- @mb_last_pos = nil
63
+ def getbyte
64
+ raise "MultibyteStringScanner doesn't support #getbyte."
65
+ end
72
66
 
73
- # We set position kind of a lot during parsing, so we want it to be as
74
- # efficient as possible. This is complicated by the fact that UTF-8 is a
75
- # variable-length encoding, so it's difficult to find the byte length that
76
- # corresponds to a given character length.
77
- #
78
- # Our heuristic here is to try to count the fewest possible characters. So
79
- # if the new position is close to the current one, just count the
80
- # characters between the two; if the new position is closer to the
81
- # beginning of the string, just count the characters from there.
82
- if @mb_pos - n < @mb_pos / 2
83
- # New position is close to old position
84
- byte_delta = @mb_pos > n ? -string[n...@mb_pos].bytesize : string[@mb_pos...n].bytesize
85
- super(byte_pos + byte_delta)
86
- else
87
- # New position is close to BOS
88
- super(string[0...n].bytesize)
89
- end
90
- @mb_pos = n
91
- end
67
+ def pos=(n)
68
+ @mb_last_pos = nil
69
+
70
+ # We set position kind of a lot during parsing, so we want it to be as
71
+ # efficient as possible. This is complicated by the fact that UTF-8 is a
72
+ # variable-length encoding, so it's difficult to find the byte length that
73
+ # corresponds to a given character length.
74
+ #
75
+ # Our heuristic here is to try to count the fewest possible characters. So
76
+ # if the new position is close to the current one, just count the
77
+ # characters between the two; if the new position is closer to the
78
+ # beginning of the string, just count the characters from there.
79
+ if @mb_pos - n < @mb_pos / 2
80
+ # New position is close to old position
81
+ byte_delta = @mb_pos > n ? -string[n...@mb_pos].bytesize : string[@mb_pos...n].bytesize
82
+ super(byte_pos + byte_delta)
83
+ else
84
+ # New position is close to BOS
85
+ super(string[0...n].bytesize)
86
+ end
87
+ @mb_pos = n
88
+ end
92
89
 
93
- def reset
94
- @mb_pos = 0
95
- @mb_matched_size = nil
96
- @mb_last_pos = nil
97
- super
98
- end
90
+ def reset
91
+ @mb_pos = 0
92
+ @mb_matched_size = nil
93
+ @mb_last_pos = nil
94
+ super
95
+ end
99
96
 
100
- def scan_full(pattern, advance_pointer_p, return_string_p)
101
- res = _match super(pattern, advance_pointer_p, true)
102
- _forward res if advance_pointer_p
103
- return res if return_string_p
104
- end
97
+ def scan_full(pattern, advance_pointer_p, return_string_p)
98
+ res = _match super(pattern, advance_pointer_p, true)
99
+ _forward res if advance_pointer_p
100
+ return res if return_string_p
101
+ end
105
102
 
106
- def search_full(pattern, advance_pointer_p, return_string_p)
107
- res = super(pattern, advance_pointer_p, true)
108
- _forward res if advance_pointer_p
109
- _matched((res if return_string_p))
110
- end
103
+ def search_full(pattern, advance_pointer_p, return_string_p)
104
+ res = super(pattern, advance_pointer_p, true)
105
+ _forward res if advance_pointer_p
106
+ _matched((res if return_string_p))
107
+ end
111
108
 
112
- def string=(str)
113
- @mb_pos = 0
114
- @mb_matched_size = nil
115
- @mb_last_pos = nil
116
- super
117
- end
109
+ def string=(str)
110
+ @mb_pos = 0
111
+ @mb_matched_size = nil
112
+ @mb_last_pos = nil
113
+ super
114
+ end
118
115
 
119
- def terminate
120
- @mb_pos = string.size
121
- @mb_matched_size = nil
122
- @mb_last_pos = nil
123
- super
124
- end
125
- alias_method :clear, :terminate
116
+ def terminate
117
+ @mb_pos = string.size
118
+ @mb_matched_size = nil
119
+ @mb_last_pos = nil
120
+ super
121
+ end
122
+ alias_method :clear, :terminate
126
123
 
127
- def unscan
128
- super
129
- @mb_pos = @mb_last_pos
130
- @mb_last_pos = @mb_matched_size = nil
131
- end
124
+ def unscan
125
+ super
126
+ @mb_pos = @mb_last_pos
127
+ @mb_last_pos = @mb_matched_size = nil
128
+ end
132
129
 
133
- private
130
+ private
134
131
 
135
- def _size(str)
136
- str && str.size
137
- end
132
+ def _size(str)
133
+ str && str.size
134
+ end
138
135
 
139
- def _match(str)
140
- @mb_matched_size = str && str.size
141
- str
142
- end
136
+ def _match(str)
137
+ @mb_matched_size = str && str.size
138
+ str
139
+ end
143
140
 
144
- def _matched(res)
145
- _match matched
146
- res
147
- end
141
+ def _matched(res)
142
+ _match matched
143
+ res
144
+ end
148
145
 
149
- def _forward(str)
150
- @mb_last_pos = @mb_pos
151
- @mb_pos += str.size if str
152
- str
153
- end
146
+ def _forward(str)
147
+ @mb_last_pos = @mb_pos
148
+ @mb_pos += str.size if str
149
+ str
154
150
  end
155
151
  end
@@ -5,12 +5,11 @@ module Sass
5
5
  # A hash that normalizes its string keys while still allowing you to get back
6
6
  # to the original keys that were stored. If several different values normalize
7
7
  # to the same value, whichever is stored last wins.
8
- require 'sass/util/ordered_hash' if ruby1_8?
9
8
  class NormalizedMap
10
9
  # Create a normalized map
11
10
  def initialize(map = nil)
12
11
  @key_strings = {}
13
- @map = Util.ruby1_8? ? OrderedHash.new : {}
12
+ @map = {}
14
13
 
15
14
  map.each {|key, value| self[key] = value} if map
16
15
  end
@@ -115,12 +114,6 @@ module Sass
115
114
  @map.send(method, *args, &block)
116
115
  end
117
116
 
118
- if Sass::Util.ruby1_8?
119
- def respond_to?(method, include_private = false)
120
- super || @map.respond_to?(method, include_private)
121
- end
122
- end
123
-
124
117
  def respond_to_missing?(method, include_private = false)
125
118
  @map.respond_to?(method, include_private)
126
119
  end
@@ -42,8 +42,6 @@ module Sass
42
42
  # }
43
43
  #
44
44
  # @return [{Symbol => String/Integer}] The version hash
45
- # @comment
46
- # rubocop:disable ClassVars
47
45
  def version
48
46
  return @@version if defined?(@@version)
49
47
 
@@ -77,10 +75,8 @@ module Sass
77
75
  end
78
76
  end
79
77
 
80
- @@version[:string] << " (#{name})"
81
78
  @@version
82
79
  end
83
- # rubocop:enable ClassVars
84
80
 
85
81
  private
86
82
 
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.25
4
+ version: 3.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Natalie Weizenbaum
@@ -10,8 +10,22 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-07-07 00:00:00.000000000 Z
13
+ date: 2019-04-04 00:00:00.000000000 Z
14
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: sass-listen
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: 4.0.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: 4.0.0
15
29
  - !ruby/object:Gem::Dependency
16
30
  name: yard
17
31
  requirement: !ruby/object:Gem::Requirement
@@ -32,14 +46,28 @@ dependencies:
32
46
  requirements:
33
47
  - - "~>"
34
48
  - !ruby/object:Gem::Version
35
- version: 2.3.0
49
+ version: '3.3'
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '3.3'
57
+ - !ruby/object:Gem::Dependency
58
+ name: nokogiri
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: 1.6.0
36
64
  type: :development
37
65
  prerelease: false
38
66
  version_requirements: !ruby/object:Gem::Requirement
39
67
  requirements:
40
68
  - - "~>"
41
69
  - !ruby/object:Gem::Version
42
- version: 2.3.0
70
+ version: 1.6.0
43
71
  - !ruby/object:Gem::Dependency
44
72
  name: minitest
45
73
  requirement: !ruby/object:Gem::Requirement
@@ -55,6 +83,8 @@ dependencies:
55
83
  - !ruby/object:Gem::Version
56
84
  version: '5'
57
85
  description: |2
86
+ Ruby Sass is deprecated! See https://sass-lang.com/ruby-sass for details.
87
+
58
88
  Sass makes CSS fun again. Sass is an extension of CSS, adding
59
89
  nested rules, variables, mixins, selector inheritance, and more.
60
90
  It's translated to well-formatted, standard CSS using the
@@ -73,7 +103,6 @@ files:
73
103
  - MIT-LICENSE
74
104
  - README.md
75
105
  - REVISION
76
- - Rakefile
77
106
  - VERSION
78
107
  - VERSION_DATE
79
108
  - VERSION_NAME
@@ -124,7 +153,6 @@ files:
124
153
  - lib/sass/script.rb
125
154
  - lib/sass/script/css_lexer.rb
126
155
  - lib/sass/script/css_parser.rb
127
- - lib/sass/script/css_variable_warning.rb
128
156
  - lib/sass/script/functions.rb
129
157
  - lib/sass/script/lexer.rb
130
158
  - lib/sass/script/parser.rb
@@ -144,7 +172,9 @@ files:
144
172
  - lib/sass/script/value/arg_list.rb
145
173
  - lib/sass/script/value/base.rb
146
174
  - lib/sass/script/value/bool.rb
175
+ - lib/sass/script/value/callable.rb
147
176
  - lib/sass/script/value/color.rb
177
+ - lib/sass/script/value/function.rb
148
178
  - lib/sass/script/value/helpers.rb
149
179
  - lib/sass/script/value/list.rb
150
180
  - lib/sass/script/value/map.rb
@@ -207,181 +237,30 @@ files:
207
237
  - lib/sass/tree/warn_node.rb
208
238
  - lib/sass/tree/while_node.rb
209
239
  - lib/sass/util.rb
210
- - lib/sass/util/cross_platform_random.rb
211
240
  - lib/sass/util/multibyte_string_scanner.rb
212
241
  - lib/sass/util/normalized_map.rb
213
- - lib/sass/util/ordered_hash.rb
214
242
  - lib/sass/util/subset_map.rb
215
243
  - lib/sass/util/test.rb
216
244
  - lib/sass/version.rb
217
245
  - rails/init.rb
218
- - test/sass-spec.yml
219
- - test/sass/cache_test.rb
220
- - test/sass/callbacks_test.rb
221
- - test/sass/compiler_test.rb
222
- - test/sass/conversion_test.rb
223
- - test/sass/css2sass_test.rb
224
- - test/sass/css_variable_test.rb
225
- - test/sass/data/hsl-rgb.txt
226
- - test/sass/encoding_test.rb
227
- - test/sass/engine_test.rb
228
- - test/sass/exec_test.rb
229
- - test/sass/extend_test.rb
230
- - test/sass/fixtures/test_staleness_check_across_importers.css
231
- - test/sass/fixtures/test_staleness_check_across_importers.scss
232
- - test/sass/functions_test.rb
233
- - test/sass/importer_test.rb
234
- - test/sass/logger_test.rb
235
- - test/sass/mock_importer.rb
236
- - test/sass/more_results/more1.css
237
- - test/sass/more_results/more1_with_line_comments.css
238
- - test/sass/more_results/more_import.css
239
- - test/sass/more_templates/_more_partial.sass
240
- - test/sass/more_templates/more1.sass
241
- - test/sass/more_templates/more_import.sass
242
- - test/sass/plugin_test.rb
243
- - test/sass/results/alt.css
244
- - test/sass/results/basic.css
245
- - test/sass/results/cached_import_option.css
246
- - test/sass/results/compact.css
247
- - test/sass/results/complex.css
248
- - test/sass/results/compressed.css
249
- - test/sass/results/expanded.css
250
- - test/sass/results/filename_fn.css
251
- - test/sass/results/if.css
252
- - test/sass/results/import.css
253
- - test/sass/results/import_charset.css
254
- - test/sass/results/import_charset_1_8.css
255
- - test/sass/results/import_charset_ibm866.css
256
- - test/sass/results/import_content.css
257
- - test/sass/results/line_numbers.css
258
- - test/sass/results/mixins.css
259
- - test/sass/results/multiline.css
260
- - test/sass/results/nested.css
261
- - test/sass/results/options.css
262
- - test/sass/results/parent_ref.css
263
- - test/sass/results/script.css
264
- - test/sass/results/scss_import.css
265
- - test/sass/results/scss_importee.css
266
- - test/sass/results/subdir/nested_subdir/nested_subdir.css
267
- - test/sass/results/subdir/subdir.css
268
- - test/sass/results/units.css
269
- - test/sass/results/warn.css
270
- - test/sass/results/warn_imported.css
271
- - test/sass/script_conversion_test.rb
272
- - test/sass/script_test.rb
273
- - test/sass/scss/css_test.rb
274
- - test/sass/scss/rx_test.rb
275
- - test/sass/scss/scss_test.rb
276
- - test/sass/scss/test_helper.rb
277
- - test/sass/source_map_test.rb
278
- - test/sass/superselector_test.rb
279
- - test/sass/templates/_cached_import_option_partial.scss
280
- - test/sass/templates/_double_import_loop2.sass
281
- - test/sass/templates/_filename_fn_import.scss
282
- - test/sass/templates/_imported_charset_ibm866.sass
283
- - test/sass/templates/_imported_charset_utf8.sass
284
- - test/sass/templates/_imported_content.sass
285
- - test/sass/templates/_partial.sass
286
- - test/sass/templates/_same_name_different_partiality.scss
287
- - test/sass/templates/alt.sass
288
- - test/sass/templates/basic.sass
289
- - test/sass/templates/bork1.sass
290
- - test/sass/templates/bork2.sass
291
- - test/sass/templates/bork3.sass
292
- - test/sass/templates/bork4.sass
293
- - test/sass/templates/bork5.sass
294
- - test/sass/templates/cached_import_option.scss
295
- - test/sass/templates/compact.sass
296
- - test/sass/templates/complex.sass
297
- - test/sass/templates/compressed.sass
298
- - test/sass/templates/double_import_loop1.sass
299
- - test/sass/templates/expanded.sass
300
- - test/sass/templates/filename_fn.scss
301
- - test/sass/templates/if.sass
302
- - test/sass/templates/import.sass
303
- - test/sass/templates/import_charset.sass
304
- - test/sass/templates/import_charset_1_8.sass
305
- - test/sass/templates/import_charset_ibm866.sass
306
- - test/sass/templates/import_content.sass
307
- - test/sass/templates/importee.less
308
- - test/sass/templates/importee.sass
309
- - test/sass/templates/line_numbers.sass
310
- - test/sass/templates/mixin_bork.sass
311
- - test/sass/templates/mixins.sass
312
- - test/sass/templates/multiline.sass
313
- - test/sass/templates/nested.sass
314
- - test/sass/templates/nested_bork1.sass
315
- - test/sass/templates/nested_bork2.sass
316
- - test/sass/templates/nested_bork3.sass
317
- - test/sass/templates/nested_bork4.sass
318
- - test/sass/templates/nested_import.sass
319
- - test/sass/templates/nested_mixin_bork.sass
320
- - test/sass/templates/options.sass
321
- - test/sass/templates/parent_ref.sass
322
- - test/sass/templates/same_name_different_ext.sass
323
- - test/sass/templates/same_name_different_ext.scss
324
- - test/sass/templates/same_name_different_partiality.scss
325
- - test/sass/templates/script.sass
326
- - test/sass/templates/scss_import.scss
327
- - test/sass/templates/scss_importee.scss
328
- - test/sass/templates/single_import_loop.sass
329
- - test/sass/templates/subdir/import_up1.scss
330
- - test/sass/templates/subdir/import_up2.scss
331
- - test/sass/templates/subdir/nested_subdir/_nested_partial.sass
332
- - test/sass/templates/subdir/nested_subdir/nested_subdir.sass
333
- - test/sass/templates/subdir/subdir.sass
334
- - test/sass/templates/units.sass
335
- - test/sass/templates/warn.sass
336
- - test/sass/templates/warn_imported.sass
337
- - test/sass/test_helper.rb
338
- - test/sass/util/multibyte_string_scanner_test.rb
339
- - test/sass/util/normalized_map_test.rb
340
- - test/sass/util/subset_map_test.rb
341
- - test/sass/util_test.rb
342
- - test/sass/value_helpers_test.rb
343
- - test/test_helper.rb
344
- - vendor/listen/CHANGELOG.md
345
- - vendor/listen/CONTRIBUTING.md
346
- - vendor/listen/Gemfile
347
- - vendor/listen/Guardfile
348
- - vendor/listen/LICENSE
349
- - vendor/listen/README.md
350
- - vendor/listen/Rakefile
351
- - vendor/listen/Vagrantfile
352
- - vendor/listen/lib/listen.rb
353
- - vendor/listen/lib/listen/adapter.rb
354
- - vendor/listen/lib/listen/adapters/bsd.rb
355
- - vendor/listen/lib/listen/adapters/darwin.rb
356
- - vendor/listen/lib/listen/adapters/linux.rb
357
- - vendor/listen/lib/listen/adapters/polling.rb
358
- - vendor/listen/lib/listen/adapters/windows.rb
359
- - vendor/listen/lib/listen/directory_record.rb
360
- - vendor/listen/lib/listen/listener.rb
361
- - vendor/listen/lib/listen/turnstile.rb
362
- - vendor/listen/lib/listen/version.rb
363
- - vendor/listen/listen.gemspec
364
- - vendor/listen/spec/listen/adapter_spec.rb
365
- - vendor/listen/spec/listen/adapters/bsd_spec.rb
366
- - vendor/listen/spec/listen/adapters/darwin_spec.rb
367
- - vendor/listen/spec/listen/adapters/linux_spec.rb
368
- - vendor/listen/spec/listen/adapters/polling_spec.rb
369
- - vendor/listen/spec/listen/adapters/windows_spec.rb
370
- - vendor/listen/spec/listen/directory_record_spec.rb
371
- - vendor/listen/spec/listen/listener_spec.rb
372
- - vendor/listen/spec/listen/turnstile_spec.rb
373
- - vendor/listen/spec/listen_spec.rb
374
- - vendor/listen/spec/spec_helper.rb
375
- - vendor/listen/spec/support/adapter_helper.rb
376
- - vendor/listen/spec/support/directory_record_helper.rb
377
- - vendor/listen/spec/support/fixtures_helper.rb
378
- - vendor/listen/spec/support/listeners_helper.rb
379
- - vendor/listen/spec/support/platform_helper.rb
380
- homepage: http://sass-lang.com/
246
+ homepage: https://sass-lang.com/
381
247
  licenses:
382
248
  - MIT
383
- metadata: {}
384
- post_install_message:
249
+ metadata:
250
+ source_code_uri: https://github.com/sass/ruby-sass
251
+ post_install_message: |2+
252
+
253
+ Ruby Sass has reached end-of-life and should no longer be used.
254
+
255
+ * If you use Sass as a command-line tool, we recommend using Dart Sass, the new
256
+ primary implementation: https://sass-lang.com/install
257
+
258
+ * If you use Sass as a plug-in for a Ruby web framework, we recommend using the
259
+ sassc gem: https://github.com/sass/sassc-ruby#readme
260
+
261
+ * For more details, please refer to the Sass blog:
262
+ https://sass-lang.com/blog/posts/7828841
263
+
385
264
  rdoc_options: []
386
265
  require_paths:
387
266
  - lib
@@ -389,7 +268,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
389
268
  requirements:
390
269
  - - ">="
391
270
  - !ruby/object:Gem::Version
392
- version: 1.8.7
271
+ version: 2.0.0
393
272
  required_rubygems_version: !ruby/object:Gem::Requirement
394
273
  requirements:
395
274
  - - ">="
@@ -397,34 +276,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
397
276
  version: '0'
398
277
  requirements: []
399
278
  rubyforge_project: sass
400
- rubygems_version: 2.4.8
279
+ rubygems_version: 2.6.14
401
280
  signing_key:
402
281
  specification_version: 4
403
282
  summary: A powerful but elegant CSS compiler that makes CSS fun again.
404
- test_files:
405
- - test/sass/extend_test.rb
406
- - test/sass/css2sass_test.rb
407
- - test/sass/util_test.rb
408
- - test/sass/superselector_test.rb
409
- - test/sass/value_helpers_test.rb
410
- - test/sass/plugin_test.rb
411
- - test/sass/logger_test.rb
412
- - test/sass/functions_test.rb
413
- - test/sass/conversion_test.rb
414
- - test/sass/source_map_test.rb
415
- - test/sass/cache_test.rb
416
- - test/sass/encoding_test.rb
417
- - test/sass/script_test.rb
418
- - test/sass/callbacks_test.rb
419
- - test/sass/script_conversion_test.rb
420
- - test/sass/scss/css_test.rb
421
- - test/sass/scss/rx_test.rb
422
- - test/sass/scss/scss_test.rb
423
- - test/sass/exec_test.rb
424
- - test/sass/importer_test.rb
425
- - test/sass/engine_test.rb
426
- - test/sass/css_variable_test.rb
427
- - test/sass/compiler_test.rb
428
- - test/sass/util/subset_map_test.rb
429
- - test/sass/util/normalized_map_test.rb
430
- - test/sass/util/multibyte_string_scanner_test.rb
283
+ test_files: []