sassc 2.0.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (260) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.gitmodules +1 -1
  4. data/.travis.yml +9 -3
  5. data/CHANGELOG.md +36 -0
  6. data/CODE_OF_CONDUCT.md +1 -1
  7. data/README.md +1 -1
  8. data/Rakefile +43 -7
  9. data/ext/depend +4 -0
  10. data/ext/extconf.rb +92 -0
  11. data/ext/libsass/VERSION +1 -0
  12. data/ext/libsass/include/sass/base.h +9 -1
  13. data/ext/libsass/include/sass/context.h +5 -1
  14. data/ext/libsass/src/MurmurHash2.hpp +91 -0
  15. data/ext/libsass/src/ast.cpp +755 -2028
  16. data/ext/libsass/src/ast.hpp +492 -2477
  17. data/ext/libsass/src/{to_c.cpp → ast2c.cpp} +22 -16
  18. data/ext/libsass/src/ast2c.hpp +39 -0
  19. data/ext/libsass/src/ast_def_macros.hpp +70 -10
  20. data/ext/libsass/src/ast_fwd_decl.cpp +5 -3
  21. data/ext/libsass/src/ast_fwd_decl.hpp +107 -296
  22. data/ext/libsass/src/ast_helpers.hpp +292 -0
  23. data/ext/libsass/src/ast_sel_cmp.cpp +396 -0
  24. data/ext/libsass/src/ast_sel_super.cpp +539 -0
  25. data/ext/libsass/src/ast_sel_unify.cpp +275 -0
  26. data/ext/libsass/src/ast_sel_weave.cpp +616 -0
  27. data/ext/libsass/src/ast_selectors.cpp +1043 -0
  28. data/ext/libsass/src/ast_selectors.hpp +522 -0
  29. data/ext/libsass/src/ast_supports.cpp +114 -0
  30. data/ext/libsass/src/ast_supports.hpp +121 -0
  31. data/ext/libsass/src/ast_values.cpp +1154 -0
  32. data/ext/libsass/src/ast_values.hpp +498 -0
  33. data/ext/libsass/src/backtrace.cpp +11 -7
  34. data/ext/libsass/src/backtrace.hpp +5 -5
  35. data/ext/libsass/src/base64vlq.cpp +5 -2
  36. data/ext/libsass/src/base64vlq.hpp +1 -1
  37. data/ext/libsass/src/bind.cpp +35 -34
  38. data/ext/libsass/src/bind.hpp +3 -1
  39. data/ext/libsass/src/c2ast.cpp +64 -0
  40. data/ext/libsass/src/c2ast.hpp +14 -0
  41. data/ext/libsass/src/cencode.c +4 -6
  42. data/ext/libsass/src/check_nesting.cpp +83 -88
  43. data/ext/libsass/src/check_nesting.hpp +39 -34
  44. data/ext/libsass/src/color_maps.cpp +168 -164
  45. data/ext/libsass/src/color_maps.hpp +152 -160
  46. data/ext/libsass/src/constants.cpp +20 -0
  47. data/ext/libsass/src/constants.hpp +19 -0
  48. data/ext/libsass/src/context.cpp +104 -121
  49. data/ext/libsass/src/context.hpp +43 -55
  50. data/ext/libsass/src/cssize.cpp +103 -188
  51. data/ext/libsass/src/cssize.hpp +45 -51
  52. data/ext/libsass/src/dart_helpers.hpp +199 -0
  53. data/ext/libsass/src/debugger.hpp +524 -361
  54. data/ext/libsass/src/emitter.cpp +26 -26
  55. data/ext/libsass/src/emitter.hpp +20 -18
  56. data/ext/libsass/src/environment.cpp +41 -27
  57. data/ext/libsass/src/environment.hpp +33 -22
  58. data/ext/libsass/src/error_handling.cpp +92 -94
  59. data/ext/libsass/src/error_handling.hpp +73 -50
  60. data/ext/libsass/src/eval.cpp +380 -515
  61. data/ext/libsass/src/eval.hpp +64 -57
  62. data/ext/libsass/src/eval_selectors.cpp +75 -0
  63. data/ext/libsass/src/expand.cpp +322 -263
  64. data/ext/libsass/src/expand.hpp +55 -39
  65. data/ext/libsass/src/extender.cpp +1188 -0
  66. data/ext/libsass/src/extender.hpp +399 -0
  67. data/ext/libsass/src/extension.cpp +43 -0
  68. data/ext/libsass/src/extension.hpp +89 -0
  69. data/ext/libsass/src/file.cpp +134 -88
  70. data/ext/libsass/src/file.hpp +28 -37
  71. data/ext/libsass/src/fn_colors.cpp +596 -0
  72. data/ext/libsass/src/fn_colors.hpp +85 -0
  73. data/ext/libsass/src/fn_lists.cpp +285 -0
  74. data/ext/libsass/src/fn_lists.hpp +34 -0
  75. data/ext/libsass/src/fn_maps.cpp +94 -0
  76. data/ext/libsass/src/fn_maps.hpp +30 -0
  77. data/ext/libsass/src/fn_miscs.cpp +244 -0
  78. data/ext/libsass/src/fn_miscs.hpp +40 -0
  79. data/ext/libsass/src/fn_numbers.cpp +227 -0
  80. data/ext/libsass/src/fn_numbers.hpp +45 -0
  81. data/ext/libsass/src/fn_selectors.cpp +205 -0
  82. data/ext/libsass/src/fn_selectors.hpp +35 -0
  83. data/ext/libsass/src/fn_strings.cpp +268 -0
  84. data/ext/libsass/src/fn_strings.hpp +34 -0
  85. data/ext/libsass/src/fn_utils.cpp +158 -0
  86. data/ext/libsass/src/fn_utils.hpp +62 -0
  87. data/ext/libsass/src/inspect.cpp +253 -266
  88. data/ext/libsass/src/inspect.hpp +72 -74
  89. data/ext/libsass/src/json.cpp +2 -2
  90. data/ext/libsass/src/lexer.cpp +25 -84
  91. data/ext/libsass/src/lexer.hpp +5 -16
  92. data/ext/libsass/src/listize.cpp +27 -43
  93. data/ext/libsass/src/listize.hpp +14 -11
  94. data/ext/libsass/src/mapping.hpp +1 -0
  95. data/ext/libsass/src/memory.hpp +12 -0
  96. data/ext/libsass/src/memory/allocator.cpp +48 -0
  97. data/ext/libsass/src/memory/allocator.hpp +138 -0
  98. data/ext/libsass/src/memory/config.hpp +20 -0
  99. data/ext/libsass/src/memory/memory_pool.hpp +186 -0
  100. data/ext/libsass/src/memory/shared_ptr.cpp +33 -0
  101. data/ext/libsass/src/memory/shared_ptr.hpp +332 -0
  102. data/ext/libsass/src/operation.hpp +193 -143
  103. data/ext/libsass/src/operators.cpp +56 -29
  104. data/ext/libsass/src/operators.hpp +11 -11
  105. data/ext/libsass/src/ordered_map.hpp +112 -0
  106. data/ext/libsass/src/output.cpp +59 -75
  107. data/ext/libsass/src/output.hpp +15 -22
  108. data/ext/libsass/src/parser.cpp +662 -818
  109. data/ext/libsass/src/parser.hpp +96 -100
  110. data/ext/libsass/src/parser_selectors.cpp +189 -0
  111. data/ext/libsass/src/permutate.hpp +164 -0
  112. data/ext/libsass/src/plugins.cpp +12 -8
  113. data/ext/libsass/src/plugins.hpp +8 -8
  114. data/ext/libsass/src/position.cpp +10 -26
  115. data/ext/libsass/src/position.hpp +44 -21
  116. data/ext/libsass/src/prelexer.cpp +14 -8
  117. data/ext/libsass/src/prelexer.hpp +9 -9
  118. data/ext/libsass/src/remove_placeholders.cpp +59 -57
  119. data/ext/libsass/src/remove_placeholders.hpp +20 -18
  120. data/ext/libsass/src/sass.cpp +25 -18
  121. data/ext/libsass/src/sass.hpp +22 -14
  122. data/ext/libsass/src/sass2scss.cpp +49 -18
  123. data/ext/libsass/src/sass_context.cpp +104 -132
  124. data/ext/libsass/src/sass_context.hpp +2 -2
  125. data/ext/libsass/src/sass_functions.cpp +7 -4
  126. data/ext/libsass/src/sass_functions.hpp +1 -1
  127. data/ext/libsass/src/sass_values.cpp +26 -21
  128. data/ext/libsass/src/settings.hpp +19 -0
  129. data/ext/libsass/src/source.cpp +69 -0
  130. data/ext/libsass/src/source.hpp +95 -0
  131. data/ext/libsass/src/source_data.hpp +32 -0
  132. data/ext/libsass/src/source_map.cpp +27 -20
  133. data/ext/libsass/src/source_map.hpp +14 -11
  134. data/ext/libsass/src/stylesheet.cpp +22 -0
  135. data/ext/libsass/src/stylesheet.hpp +57 -0
  136. data/ext/libsass/src/to_value.cpp +24 -22
  137. data/ext/libsass/src/to_value.hpp +18 -22
  138. data/ext/libsass/src/units.cpp +28 -22
  139. data/ext/libsass/src/units.hpp +9 -8
  140. data/ext/libsass/src/utf8/checked.h +12 -10
  141. data/ext/libsass/src/utf8/core.h +3 -0
  142. data/ext/libsass/src/utf8_string.cpp +12 -10
  143. data/ext/libsass/src/utf8_string.hpp +7 -6
  144. data/ext/libsass/src/util.cpp +97 -107
  145. data/ext/libsass/src/util.hpp +74 -30
  146. data/ext/libsass/src/util_string.cpp +125 -0
  147. data/ext/libsass/src/util_string.hpp +73 -0
  148. data/ext/libsass/src/values.cpp +33 -24
  149. data/ext/libsass/src/values.hpp +2 -2
  150. data/lib/sassc.rb +24 -0
  151. data/lib/sassc/engine.rb +7 -5
  152. data/lib/sassc/functions_handler.rb +11 -13
  153. data/lib/sassc/native.rb +10 -9
  154. data/lib/sassc/native/native_functions_api.rb +0 -5
  155. data/lib/sassc/script.rb +4 -6
  156. data/lib/sassc/version.rb +1 -1
  157. data/sassc.gemspec +32 -12
  158. data/test/engine_test.rb +32 -2
  159. data/test/functions_test.rb +38 -1
  160. data/test/native_test.rb +4 -4
  161. metadata +95 -109
  162. data/ext/Rakefile +0 -3
  163. data/ext/libsass/.editorconfig +0 -15
  164. data/ext/libsass/.gitattributes +0 -2
  165. data/ext/libsass/.github/CONTRIBUTING.md +0 -65
  166. data/ext/libsass/.github/ISSUE_TEMPLATE.md +0 -54
  167. data/ext/libsass/.gitignore +0 -85
  168. data/ext/libsass/.travis.yml +0 -64
  169. data/ext/libsass/COPYING +0 -25
  170. data/ext/libsass/GNUmakefile.am +0 -88
  171. data/ext/libsass/INSTALL +0 -1
  172. data/ext/libsass/LICENSE +0 -25
  173. data/ext/libsass/Makefile +0 -351
  174. data/ext/libsass/Makefile.conf +0 -55
  175. data/ext/libsass/Readme.md +0 -104
  176. data/ext/libsass/SECURITY.md +0 -10
  177. data/ext/libsass/appveyor.yml +0 -91
  178. data/ext/libsass/configure.ac +0 -138
  179. data/ext/libsass/contrib/libsass.spec +0 -66
  180. data/ext/libsass/docs/README.md +0 -20
  181. data/ext/libsass/docs/api-context-example.md +0 -45
  182. data/ext/libsass/docs/api-context-internal.md +0 -163
  183. data/ext/libsass/docs/api-context.md +0 -295
  184. data/ext/libsass/docs/api-doc.md +0 -215
  185. data/ext/libsass/docs/api-function-example.md +0 -67
  186. data/ext/libsass/docs/api-function-internal.md +0 -8
  187. data/ext/libsass/docs/api-function.md +0 -74
  188. data/ext/libsass/docs/api-importer-example.md +0 -112
  189. data/ext/libsass/docs/api-importer-internal.md +0 -20
  190. data/ext/libsass/docs/api-importer.md +0 -86
  191. data/ext/libsass/docs/api-value-example.md +0 -55
  192. data/ext/libsass/docs/api-value-internal.md +0 -76
  193. data/ext/libsass/docs/api-value.md +0 -154
  194. data/ext/libsass/docs/build-on-darwin.md +0 -27
  195. data/ext/libsass/docs/build-on-gentoo.md +0 -55
  196. data/ext/libsass/docs/build-on-windows.md +0 -139
  197. data/ext/libsass/docs/build-shared-library.md +0 -35
  198. data/ext/libsass/docs/build-with-autotools.md +0 -78
  199. data/ext/libsass/docs/build-with-makefiles.md +0 -68
  200. data/ext/libsass/docs/build-with-mingw.md +0 -107
  201. data/ext/libsass/docs/build-with-visual-studio.md +0 -90
  202. data/ext/libsass/docs/build.md +0 -97
  203. data/ext/libsass/docs/compatibility-plan.md +0 -48
  204. data/ext/libsass/docs/contributing.md +0 -17
  205. data/ext/libsass/docs/custom-functions-internal.md +0 -122
  206. data/ext/libsass/docs/dev-ast-memory.md +0 -223
  207. data/ext/libsass/docs/implementations.md +0 -56
  208. data/ext/libsass/docs/plugins.md +0 -47
  209. data/ext/libsass/docs/setup-environment.md +0 -68
  210. data/ext/libsass/docs/source-map-internals.md +0 -51
  211. data/ext/libsass/docs/trace.md +0 -26
  212. data/ext/libsass/docs/triage.md +0 -17
  213. data/ext/libsass/docs/unicode.md +0 -39
  214. data/ext/libsass/extconf.rb +0 -6
  215. data/ext/libsass/include/sass/version.h.in +0 -12
  216. data/ext/libsass/m4/.gitkeep +0 -0
  217. data/ext/libsass/m4/m4-ax_cxx_compile_stdcxx_11.m4 +0 -167
  218. data/ext/libsass/res/resource.rc +0 -35
  219. data/ext/libsass/script/bootstrap +0 -13
  220. data/ext/libsass/script/branding +0 -10
  221. data/ext/libsass/script/ci-build-libsass +0 -134
  222. data/ext/libsass/script/ci-build-plugin +0 -62
  223. data/ext/libsass/script/ci-install-compiler +0 -6
  224. data/ext/libsass/script/ci-install-deps +0 -20
  225. data/ext/libsass/script/ci-report-coverage +0 -42
  226. data/ext/libsass/script/spec +0 -5
  227. data/ext/libsass/script/tap-driver +0 -652
  228. data/ext/libsass/script/tap-runner +0 -1
  229. data/ext/libsass/script/test-leaks.pl +0 -103
  230. data/ext/libsass/src/GNUmakefile.am +0 -54
  231. data/ext/libsass/src/extend.cpp +0 -2130
  232. data/ext/libsass/src/extend.hpp +0 -86
  233. data/ext/libsass/src/functions.cpp +0 -2234
  234. data/ext/libsass/src/functions.hpp +0 -198
  235. data/ext/libsass/src/memory/SharedPtr.cpp +0 -114
  236. data/ext/libsass/src/memory/SharedPtr.hpp +0 -206
  237. data/ext/libsass/src/node.cpp +0 -319
  238. data/ext/libsass/src/node.hpp +0 -118
  239. data/ext/libsass/src/paths.hpp +0 -71
  240. data/ext/libsass/src/sass_util.cpp +0 -149
  241. data/ext/libsass/src/sass_util.hpp +0 -256
  242. data/ext/libsass/src/subset_map.cpp +0 -55
  243. data/ext/libsass/src/subset_map.hpp +0 -76
  244. data/ext/libsass/src/support/libsass.pc.in +0 -11
  245. data/ext/libsass/src/to_c.hpp +0 -39
  246. data/ext/libsass/test/test_node.cpp +0 -94
  247. data/ext/libsass/test/test_paths.cpp +0 -28
  248. data/ext/libsass/test/test_selector_difference.cpp +0 -25
  249. data/ext/libsass/test/test_specificity.cpp +0 -25
  250. data/ext/libsass/test/test_subset_map.cpp +0 -472
  251. data/ext/libsass/test/test_superselector.cpp +0 -69
  252. data/ext/libsass/test/test_unification.cpp +0 -31
  253. data/ext/libsass/version.sh +0 -10
  254. data/ext/libsass/win/libsass.sln +0 -39
  255. data/ext/libsass/win/libsass.sln.DotSettings +0 -9
  256. data/ext/libsass/win/libsass.targets +0 -118
  257. data/ext/libsass/win/libsass.vcxproj +0 -188
  258. data/ext/libsass/win/libsass.vcxproj.filters +0 -357
  259. data/lib/sassc/native/lib_c.rb +0 -21
  260. data/lib/tasks/libsass.rb +0 -33
@@ -5,8 +5,8 @@
5
5
 
6
6
  namespace Sass {
7
7
 
8
- union Sass_Value* ast_node_to_sass_value (const Expression_Ptr val);
9
- Value_Ptr sass_value_to_ast_node (const union Sass_Value* val);
8
+ union Sass_Value* ast_node_to_sass_value (const Expression* val);
9
+ Value* sass_value_to_ast_node (const union Sass_Value* val);
10
10
 
11
11
  }
12
12
  #endif
data/lib/sassc.rb CHANGED
@@ -1,6 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SassC
4
+ # The global load paths for Sass files. This is meant for plugins and
5
+ # libraries to register the paths to their Sass stylesheets to that they may
6
+ # be `@imported`. This load path is used by every instance of {Sass::Engine}.
7
+ # They are lower-precedence than any load paths passed in via the
8
+ # {file:SASS_REFERENCE.md#load_paths-option `:load_paths` option}.
9
+ #
10
+ # If the `SASS_PATH` environment variable is set,
11
+ # the initial value of `load_paths` will be initialized based on that.
12
+ # The variable should be a colon-separated list of path names
13
+ # (semicolon-separated on Windows).
14
+ #
15
+ # Note that files on the global load path are never compiled to CSS
16
+ # themselves, even if they aren't partials. They exist only to be imported.
17
+ #
18
+ # @example
19
+ # SassC.load_paths << File.dirname(__FILE__ + '/sass')
20
+ # @return [Array<String, Pathname, Sass::Importers::Base>]
21
+ def self.load_paths
22
+ @load_paths ||= if ENV['SASS_PATH']
23
+ ENV['SASS_PATH'].split(SassC::Util.windows? ? ';' : ':')
24
+ else
25
+ []
26
+ end
27
+ end
4
28
  end
5
29
 
6
30
  require_relative "sassc/version"
data/lib/sassc/engine.rb CHANGED
@@ -16,6 +16,7 @@ module SassC
16
16
  def initialize(template, options = {})
17
17
  @template = template
18
18
  @options = options
19
+ @functions = options.fetch(:functions, Script::Functions)
19
20
  end
20
21
 
21
22
  def render
@@ -37,7 +38,7 @@ module SassC
37
38
  Native.option_set_omit_source_map_url(native_options, true) if omit_source_map_url?
38
39
 
39
40
  import_handler.setup(native_options)
40
- functions_handler.setup(native_options)
41
+ functions_handler.setup(native_options, functions: @functions)
41
42
 
42
43
  status = Native.compile_data_context(data_context)
43
44
 
@@ -54,11 +55,12 @@ module SassC
54
55
  @dependencies = Native.context_get_included_files(context)
55
56
  @source_map = Native.context_get_source_map_string(context)
56
57
 
57
- Native.delete_data_context(data_context)
58
-
59
58
  css.force_encoding(@template.encoding)
59
+ @source_map.force_encoding(@template.encoding) if @source_map.is_a?(String)
60
60
 
61
61
  return css unless quiet?
62
+ ensure
63
+ Native.delete_data_context(data_context) if data_context
62
64
  end
63
65
 
64
66
  def dependencies
@@ -132,8 +134,8 @@ module SassC
132
134
  end
133
135
 
134
136
  def load_paths
135
- paths = @options[:load_paths]
136
- paths.join(":") if paths
137
+ paths = (@options[:load_paths] || []) + SassC.load_paths
138
+ paths.join(File::PATH_SEPARATOR) unless paths.empty?
137
139
  end
138
140
  end
139
141
  end
@@ -6,20 +6,24 @@ module SassC
6
6
  @options = options
7
7
  end
8
8
 
9
- def setup(native_options)
9
+ def setup(native_options, functions: Script::Functions)
10
10
  @callbacks = {}
11
11
  @function_names = {}
12
12
 
13
- list = Native.make_function_list(Script.custom_functions.count)
13
+ list = Native.make_function_list(Script.custom_functions(functions: functions).count)
14
14
 
15
- functions = FunctionWrapper.extend(Script::Functions)
16
- functions.options = @options
15
+ # use an anonymous class wrapper to avoid mutations in a threaded environment
16
+ functions_wrapper = Class.new do
17
+ attr_accessor :options
18
+ include functions
19
+ end.new
20
+ functions_wrapper.options = @options
17
21
 
18
- Script.custom_functions.each_with_index do |custom_function, i|
22
+ Script.custom_functions(functions: functions).each_with_index do |custom_function, i|
19
23
  @callbacks[custom_function] = FFI::Function.new(:pointer, [:pointer, :pointer]) do |native_argument_list, cookie|
20
24
  begin
21
25
  function_arguments = arguments_from_native_list(native_argument_list)
22
- result = functions.send(custom_function, *function_arguments)
26
+ result = functions_wrapper.send(custom_function, *function_arguments)
23
27
  to_native_value(result)
24
28
  rescue StandardError => exception
25
29
  # This rescues any exceptions that occur either in value conversion
@@ -28,7 +32,7 @@ module SassC
28
32
  end
29
33
  end
30
34
 
31
- @function_names[custom_function] = Script.formatted_function_name(custom_function)
35
+ @function_names[custom_function] = Script.formatted_function_name(custom_function, functions: functions)
32
36
 
33
37
  callback = Native.make_function(
34
38
  @function_names[custom_function],
@@ -65,11 +69,5 @@ module SassC
65
69
  $stderr.puts "[SassC::FunctionsHandler] #{message}"
66
70
  Native.make_error(message)
67
71
  end
68
-
69
- class FunctionWrapper
70
- class << self
71
- attr_accessor :options
72
- end
73
- end
74
72
  end
75
73
  end
data/lib/sassc/native.rb CHANGED
@@ -6,9 +6,12 @@ module SassC
6
6
  module Native
7
7
  extend FFI::Library
8
8
 
9
- spec = Gem.loaded_specs["sassc"]
10
- gem_root = spec.gem_dir
11
- ffi_lib "#{gem_root}/ext/libsass/lib/libsass.so"
9
+ dl_ext = RbConfig::MAKEFILE_CONFIG['DLEXT']
10
+ begin
11
+ ffi_lib File.expand_path("libsass.#{dl_ext}", __dir__)
12
+ rescue LoadError # Some non-rvm environments don't copy a shared object over to lib/sassc
13
+ ffi_lib File.expand_path("libsass.#{dl_ext}", "#{__dir__}/../../ext")
14
+ end
12
15
 
13
16
  require_relative "native/sass_value"
14
17
 
@@ -31,11 +34,10 @@ module SassC
31
34
  require_relative "native/sass_input_style"
32
35
  require_relative "native/sass_output_style"
33
36
  require_relative "native/string_list"
34
- require_relative "native/lib_c"
35
37
 
36
38
  # Remove the redundant "sass_" from the beginning of every method name
37
39
  def self.attach_function(*args)
38
- super if args.size != 3
40
+ return super if args.size != 3
39
41
 
40
42
  if args[0] =~ /^sass_/
41
43
  args.unshift args[0].to_s.sub(/^sass_/, "")
@@ -50,10 +52,9 @@ module SassC
50
52
  end
51
53
 
52
54
  def self.native_string(string)
53
- string = "#{string}\0"
54
- data = Native::LibC.malloc(string.bytesize)
55
- data.write_string(string)
56
- data
55
+ m = FFI::MemoryPointer.from_string(string)
56
+ m.autorelease = false
57
+ m
57
58
  end
58
59
 
59
60
  require_relative "native/native_context_api"
@@ -98,11 +98,6 @@ module SassC
98
98
  attach_function "sass_color_set_#{color_channel}".to_sym, [:sass_value_ptr, :double], :void
99
99
  end
100
100
 
101
- # ADDAPI size_t ADDCALL sass_list_get_length(const union Sass_Value* v)
102
- # ADDAPI union Sass_Value* ADDCALL sass_list_get_value (const union Sass_Value* v, size_t i);
103
- attach_function :sass_list_get_length, [:sass_value_ptr], :size_t
104
- attach_function :sass_list_get_value, [:sass_value_ptr, :size_t], :sass_value_ptr
105
-
106
101
  # ADDAPI char* ADDCALL sass_error_get_message (const union Sass_Value* v);
107
102
  # ADDAPI void ADDCALL sass_error_set_message (union Sass_Value* v, char* msg);
108
103
  attach_function :sass_error_get_message, [:sass_value_ptr], :string
data/lib/sassc/script.rb CHANGED
@@ -3,14 +3,12 @@
3
3
  module SassC
4
4
  module Script
5
5
 
6
- def self.custom_functions
7
- Functions.instance_methods.select do |function|
8
- Functions.public_method_defined?(function)
9
- end
6
+ def self.custom_functions(functions: Functions)
7
+ functions.public_instance_methods
10
8
  end
11
9
 
12
- def self.formatted_function_name(function_name)
13
- params = Functions.instance_method(function_name).parameters
10
+ def self.formatted_function_name(function_name, functions: Functions)
11
+ params = functions.instance_method(function_name).parameters
14
12
  params = params.map { |param_type, name| "$#{name}#{': null' if param_type == :opt}" }.join(", ")
15
13
  return "#{function_name}(#{params})"
16
14
  end
data/lib/sassc/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SassC
4
- VERSION = "2.0.0"
4
+ VERSION = "2.4.0"
5
5
  end
data/sassc.gemspec CHANGED
@@ -19,31 +19,51 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
21
 
22
- spec.required_ruby_version = ">= 2.3.3"
22
+ spec.required_ruby_version = ">= 2.0.0"
23
23
 
24
24
  spec.require_paths = ["lib"]
25
25
 
26
- spec.extensions = ["ext/Rakefile"]
26
+ spec.platform = Gem::Platform::RUBY
27
+ spec.extensions = ["ext/extconf.rb"]
27
28
 
28
29
  spec.add_development_dependency "minitest", "~> 5.5.1"
29
30
  spec.add_development_dependency "minitest-around"
30
31
  spec.add_development_dependency "test_construct"
31
32
  spec.add_development_dependency "pry"
32
33
  spec.add_development_dependency "bundler"
34
+ spec.add_development_dependency "rake"
35
+ spec.add_development_dependency "rake-compiler"
36
+ spec.add_development_dependency "rake-compiler-dock"
33
37
 
34
- spec.add_dependency "rake"
35
- spec.add_dependency "ffi", "~> 1.9.6"
38
+ spec.add_dependency "ffi", "~> 1.9"
36
39
 
37
40
  gem_dir = File.expand_path(File.dirname(__FILE__)) + "/"
38
- `git submodule --quiet foreach pwd`.split($\).each do |submodule_path|
39
- Dir.chdir(submodule_path) do
40
- submodule_relative_path = submodule_path.sub gem_dir, ""
41
- # issue git ls-files in submodule's directory and
42
- # prepend the submodule path to create absolute file paths
43
- `git ls-files`.split($\).each do |filename|
44
- spec.files << "#{submodule_relative_path}/#{filename}"
45
- end
41
+
42
+ libsass_dir = File.join(gem_dir, 'ext', 'libsass')
43
+ if !File.directory?(libsass_dir) ||
44
+ # '.', '..', and possibly '.git' from a failed checkout:
45
+ Dir.entries(libsass_dir).size <= 3
46
+ Dir.chdir(__dir__) { system('git submodule update --init') } or
47
+ fail 'Could not fetch libsass'
48
+ end
49
+
50
+ # Write a VERSION file for non-binary gems (for `SassC::Native.version`).
51
+ if File.exist?(File.join(libsass_dir, '.git'))
52
+ libsass_version = Dir.chdir(libsass_dir) do
53
+ %x[git describe --abbrev=4 --dirty --always --tags].chomp
54
+ end
55
+ File.write(File.join(libsass_dir, 'VERSION'), libsass_version)
56
+ end
57
+
58
+ Dir.chdir(libsass_dir) do
59
+ submodule_relative_path = File.join('ext', 'libsass')
60
+ skip_re = %r{(^("?test|docs|script)/)|\.md$|\.yml$}
61
+ only_re = %r{\.[ch](pp)?$}
62
+ `git ls-files`.split($\).each do |filename|
63
+ next if filename =~ skip_re || filename !~ only_re
64
+ spec.files << File.join(submodule_relative_path, filename)
46
65
  end
66
+ spec.files << File.join(submodule_relative_path, 'VERSION')
47
67
  end
48
68
 
49
69
  end
data/test/engine_test.rb CHANGED
@@ -88,7 +88,7 @@ $var: 1;
88
88
  SCSS
89
89
  expected_output = <<-CSS
90
90
  .foo {
91
- baz: 0.33333; }
91
+ baz: 0.3333333333; }
92
92
  CSS
93
93
  output = Engine.new(template).render
94
94
  assert_equal expected_output, output
@@ -198,6 +198,31 @@ SCSS
198
198
  ).render
199
199
  end
200
200
 
201
+ def test_global_load_paths
202
+ temp_dir("included_1")
203
+ temp_dir("included_2")
204
+
205
+ temp_file("included_1/import_parent.scss", "$s: 30px;")
206
+ temp_file("included_2/import.scss", "@import 'import_parent'; $size: $s;")
207
+ temp_file("styles.scss", "@import 'import.scss'; .hi { width: $size; }")
208
+
209
+ ::SassC.load_paths << "included_1"
210
+ ::SassC.load_paths << "included_2"
211
+
212
+ assert_equal ".hi {\n width: 30px; }\n", Engine.new(
213
+ File.read("styles.scss"),
214
+ ).render
215
+ ::SassC.load_paths.clear
216
+ end
217
+
218
+ def test_env_load_paths
219
+ expected_load_paths = [ "included_1", "included_2" ]
220
+ ::SassC.instance_eval { @load_paths = nil }
221
+ ENV['SASS_PATH'] = expected_load_paths.join(File::PATH_SEPARATOR)
222
+ assert_equal expected_load_paths, ::SassC.load_paths
223
+ ::SassC.load_paths.clear
224
+ end
225
+
201
226
  def test_load_paths_not_configured
202
227
  temp_file("included_1/import_parent.scss", "$s: 30px;")
203
228
  temp_file("included_2/import.scss", "@import 'import_parent'; $size: $s;")
@@ -261,7 +286,7 @@ CSS
261
286
  def test_empty_template_returns_a_new_object
262
287
  input = String.new
263
288
  output = Engine.new(input).render
264
- assert input.object_id != output.object_id, 'empty template must return a new object'
289
+ assert !input.equal?(output), 'empty template must return a new object'
265
290
  end
266
291
 
267
292
  def test_empty_template_encoding_matches_input
@@ -270,6 +295,11 @@ CSS
270
295
  assert_equal input.encoding, output.encoding
271
296
  end
272
297
 
298
+ def test_handling_of_frozen_strings
299
+ output = Engine.new("body { background-color: red; }".freeze).render
300
+ assert_equal output, "body {\n background-color: red; }\n"
301
+ end
302
+
273
303
  def test_import_plain_css
274
304
  temp_file("test.css", ".something{color: red}")
275
305
  expected_output = <<-CSS
@@ -140,7 +140,7 @@ module SassC
140
140
 
141
141
  assert_match /Error: error in C function function_that_raises_errors/, exception.message
142
142
  assert_match /Intentional wrong thing happened somewhere inside the custom function/, exception.message
143
- assert_equal "[SassC::FunctionsHandler] Intentional wrong thing happened somewhere inside the custom function", stderr_output
143
+ assert_match /\[SassC::FunctionsHandler\] Intentional wrong thing happened somewhere inside the custom function/, stderr_output
144
144
  end
145
145
 
146
146
  def test_function_that_returns_a_sass_value
@@ -185,6 +185,33 @@ module SassC
185
185
  CSS
186
186
  end
187
187
 
188
+ def test_concurrency
189
+ 10.times do
190
+ threads = []
191
+ 10.times do |i|
192
+ threads << Thread.new(i) do |id|
193
+ out = Engine.new("div { url: inspect_options(); }", {test_key1: 'test_value', test_key2: id}).render
194
+ assert_match /test_key1/, out
195
+ assert_match /test_key2/, out
196
+ assert_match /test_value/, out
197
+ assert_match /#{id}/, out
198
+ end
199
+ end
200
+ threads.each(&:join)
201
+ end
202
+ end
203
+
204
+ def test_pass_custom_functions_as_a_parameter
205
+ out = Engine.new("div { url: test-function(); }", {functions: ExternalFunctions}).render
206
+ assert_match /custom_function/, out
207
+ end
208
+
209
+ def test_pass_incompatible_type_to_custom_functions
210
+ assert_raises(TypeError) do
211
+ Engine.new("div { url: test-function(); }", {functions: Class.new}).render
212
+ end
213
+ end
214
+
188
215
  private
189
216
 
190
217
  def assert_sass(sass, expected_css)
@@ -279,6 +306,10 @@ module SassC
279
306
  return argument
280
307
  end
281
308
 
309
+ def inspect_options
310
+ SassC::Script::Value::String.new(self.options.inspect, :string)
311
+ end
312
+
282
313
  def returns_sass_value
283
314
  return SassC::Script::Value::Color.new(red: 0, green: 0, blue: 0)
284
315
  end
@@ -299,5 +330,11 @@ module SassC
299
330
 
300
331
  end
301
332
 
333
+ module ExternalFunctions
334
+ def test_function
335
+ SassC::Script::Value::String.new("custom_function", :string)
336
+ end
337
+ end
338
+
302
339
  end
303
340
  end
data/test/native_test.rb CHANGED
@@ -11,7 +11,7 @@ module SassC
11
11
 
12
12
  class General < MiniTest::Test
13
13
  def test_it_reports_the_libsass_version
14
- assert_equal "3.5.2", Native.version
14
+ assert_equal "3.6.4", Native.version
15
15
  end
16
16
  end
17
17
 
@@ -185,9 +185,9 @@ module SassC
185
185
  funct = FFI::Function.new(:pointer, [:pointer, :pointer, :pointer]) do |url, prev, cookie|
186
186
  list = Native.make_import_list(2)
187
187
 
188
- str = "$var: 5px;\0"
189
- data = Native::LibC.malloc(str.size)
190
- data.write_string(str)
188
+ str = "$var: 5px;"
189
+ data = FFI::MemoryPointer.from_string(str)
190
+ data.autorelease = false
191
191
 
192
192
  entry0 = Native.make_import_entry("fake_includ.scss", data, nil)
193
193
  entry1 = Native.make_import_entry("not_included.scss", nil, nil)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sassc
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Boland
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-26 00:00:00.000000000 Z
11
+ date: 2020-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -87,7 +87,35 @@ dependencies:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
- type: :runtime
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rake-compiler
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake-compiler-dock
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
@@ -100,20 +128,20 @@ dependencies:
100
128
  requirements:
101
129
  - - "~>"
102
130
  - !ruby/object:Gem::Version
103
- version: 1.9.6
131
+ version: '1.9'
104
132
  type: :runtime
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - "~>"
109
137
  - !ruby/object:Gem::Version
110
- version: 1.9.6
138
+ version: '1.9'
111
139
  description: Use libsass with Ruby!
112
140
  email:
113
141
  - ryan@tanookilabs.com
114
142
  executables: []
115
143
  extensions:
116
- - ext/Rakefile
144
+ - ext/extconf.rb
117
145
  extra_rdoc_files: []
118
146
  files:
119
147
  - ".gitignore"
@@ -125,88 +153,36 @@ files:
125
153
  - LICENSE.txt
126
154
  - README.md
127
155
  - Rakefile
128
- - ext/Rakefile
129
- - ext/libsass/.editorconfig
130
- - ext/libsass/.gitattributes
131
- - ext/libsass/.github/CONTRIBUTING.md
132
- - ext/libsass/.github/ISSUE_TEMPLATE.md
133
- - ext/libsass/.gitignore
134
- - ext/libsass/.travis.yml
135
- - ext/libsass/COPYING
136
- - ext/libsass/GNUmakefile.am
137
- - ext/libsass/INSTALL
138
- - ext/libsass/LICENSE
139
- - ext/libsass/Makefile
140
- - ext/libsass/Makefile.conf
141
- - ext/libsass/Readme.md
142
- - ext/libsass/SECURITY.md
143
- - ext/libsass/appveyor.yml
144
- - ext/libsass/configure.ac
145
- - ext/libsass/contrib/libsass.spec
156
+ - ext/depend
157
+ - ext/extconf.rb
158
+ - ext/libsass/VERSION
146
159
  - ext/libsass/contrib/plugin.cpp
147
- - ext/libsass/docs/README.md
148
- - ext/libsass/docs/api-context-example.md
149
- - ext/libsass/docs/api-context-internal.md
150
- - ext/libsass/docs/api-context.md
151
- - ext/libsass/docs/api-doc.md
152
- - ext/libsass/docs/api-function-example.md
153
- - ext/libsass/docs/api-function-internal.md
154
- - ext/libsass/docs/api-function.md
155
- - ext/libsass/docs/api-importer-example.md
156
- - ext/libsass/docs/api-importer-internal.md
157
- - ext/libsass/docs/api-importer.md
158
- - ext/libsass/docs/api-value-example.md
159
- - ext/libsass/docs/api-value-internal.md
160
- - ext/libsass/docs/api-value.md
161
- - ext/libsass/docs/build-on-darwin.md
162
- - ext/libsass/docs/build-on-gentoo.md
163
- - ext/libsass/docs/build-on-windows.md
164
- - ext/libsass/docs/build-shared-library.md
165
- - ext/libsass/docs/build-with-autotools.md
166
- - ext/libsass/docs/build-with-makefiles.md
167
- - ext/libsass/docs/build-with-mingw.md
168
- - ext/libsass/docs/build-with-visual-studio.md
169
- - ext/libsass/docs/build.md
170
- - ext/libsass/docs/compatibility-plan.md
171
- - ext/libsass/docs/contributing.md
172
- - ext/libsass/docs/custom-functions-internal.md
173
- - ext/libsass/docs/dev-ast-memory.md
174
- - ext/libsass/docs/implementations.md
175
- - ext/libsass/docs/plugins.md
176
- - ext/libsass/docs/setup-environment.md
177
- - ext/libsass/docs/source-map-internals.md
178
- - ext/libsass/docs/trace.md
179
- - ext/libsass/docs/triage.md
180
- - ext/libsass/docs/unicode.md
181
- - ext/libsass/extconf.rb
182
160
  - ext/libsass/include/sass.h
183
161
  - ext/libsass/include/sass/base.h
184
162
  - ext/libsass/include/sass/context.h
185
163
  - ext/libsass/include/sass/functions.h
186
164
  - ext/libsass/include/sass/values.h
187
165
  - ext/libsass/include/sass/version.h
188
- - ext/libsass/include/sass/version.h.in
189
166
  - ext/libsass/include/sass2scss.h
190
- - ext/libsass/m4/.gitkeep
191
- - ext/libsass/m4/m4-ax_cxx_compile_stdcxx_11.m4
192
- - ext/libsass/res/resource.rc
193
- - ext/libsass/script/bootstrap
194
- - ext/libsass/script/branding
195
- - ext/libsass/script/ci-build-libsass
196
- - ext/libsass/script/ci-build-plugin
197
- - ext/libsass/script/ci-install-compiler
198
- - ext/libsass/script/ci-install-deps
199
- - ext/libsass/script/ci-report-coverage
200
- - ext/libsass/script/spec
201
- - ext/libsass/script/tap-driver
202
- - ext/libsass/script/tap-runner
203
- - ext/libsass/script/test-leaks.pl
204
- - ext/libsass/src/GNUmakefile.am
167
+ - ext/libsass/src/MurmurHash2.hpp
205
168
  - ext/libsass/src/ast.cpp
206
169
  - ext/libsass/src/ast.hpp
170
+ - ext/libsass/src/ast2c.cpp
171
+ - ext/libsass/src/ast2c.hpp
207
172
  - ext/libsass/src/ast_def_macros.hpp
208
173
  - ext/libsass/src/ast_fwd_decl.cpp
209
174
  - ext/libsass/src/ast_fwd_decl.hpp
175
+ - ext/libsass/src/ast_helpers.hpp
176
+ - ext/libsass/src/ast_sel_cmp.cpp
177
+ - ext/libsass/src/ast_sel_super.cpp
178
+ - ext/libsass/src/ast_sel_unify.cpp
179
+ - ext/libsass/src/ast_sel_weave.cpp
180
+ - ext/libsass/src/ast_selectors.cpp
181
+ - ext/libsass/src/ast_selectors.hpp
182
+ - ext/libsass/src/ast_supports.cpp
183
+ - ext/libsass/src/ast_supports.hpp
184
+ - ext/libsass/src/ast_values.cpp
185
+ - ext/libsass/src/ast_values.hpp
210
186
  - ext/libsass/src/b64/cencode.h
211
187
  - ext/libsass/src/b64/encode.h
212
188
  - ext/libsass/src/backtrace.cpp
@@ -215,6 +191,8 @@ files:
215
191
  - ext/libsass/src/base64vlq.hpp
216
192
  - ext/libsass/src/bind.cpp
217
193
  - ext/libsass/src/bind.hpp
194
+ - ext/libsass/src/c2ast.cpp
195
+ - ext/libsass/src/c2ast.hpp
218
196
  - ext/libsass/src/c99func.c
219
197
  - ext/libsass/src/cencode.c
220
198
  - ext/libsass/src/check_nesting.cpp
@@ -227,6 +205,7 @@ files:
227
205
  - ext/libsass/src/context.hpp
228
206
  - ext/libsass/src/cssize.cpp
229
207
  - ext/libsass/src/cssize.hpp
208
+ - ext/libsass/src/dart_helpers.hpp
230
209
  - ext/libsass/src/debug.hpp
231
210
  - ext/libsass/src/debugger.hpp
232
211
  - ext/libsass/src/emitter.cpp
@@ -237,14 +216,31 @@ files:
237
216
  - ext/libsass/src/error_handling.hpp
238
217
  - ext/libsass/src/eval.cpp
239
218
  - ext/libsass/src/eval.hpp
219
+ - ext/libsass/src/eval_selectors.cpp
240
220
  - ext/libsass/src/expand.cpp
241
221
  - ext/libsass/src/expand.hpp
242
- - ext/libsass/src/extend.cpp
243
- - ext/libsass/src/extend.hpp
222
+ - ext/libsass/src/extender.cpp
223
+ - ext/libsass/src/extender.hpp
224
+ - ext/libsass/src/extension.cpp
225
+ - ext/libsass/src/extension.hpp
244
226
  - ext/libsass/src/file.cpp
245
227
  - ext/libsass/src/file.hpp
246
- - ext/libsass/src/functions.cpp
247
- - ext/libsass/src/functions.hpp
228
+ - ext/libsass/src/fn_colors.cpp
229
+ - ext/libsass/src/fn_colors.hpp
230
+ - ext/libsass/src/fn_lists.cpp
231
+ - ext/libsass/src/fn_lists.hpp
232
+ - ext/libsass/src/fn_maps.cpp
233
+ - ext/libsass/src/fn_maps.hpp
234
+ - ext/libsass/src/fn_miscs.cpp
235
+ - ext/libsass/src/fn_miscs.hpp
236
+ - ext/libsass/src/fn_numbers.cpp
237
+ - ext/libsass/src/fn_numbers.hpp
238
+ - ext/libsass/src/fn_selectors.cpp
239
+ - ext/libsass/src/fn_selectors.hpp
240
+ - ext/libsass/src/fn_strings.cpp
241
+ - ext/libsass/src/fn_strings.hpp
242
+ - ext/libsass/src/fn_utils.cpp
243
+ - ext/libsass/src/fn_utils.hpp
248
244
  - ext/libsass/src/inspect.cpp
249
245
  - ext/libsass/src/inspect.hpp
250
246
  - ext/libsass/src/json.cpp
@@ -255,18 +251,23 @@ files:
255
251
  - ext/libsass/src/listize.cpp
256
252
  - ext/libsass/src/listize.hpp
257
253
  - ext/libsass/src/mapping.hpp
258
- - ext/libsass/src/memory/SharedPtr.cpp
259
- - ext/libsass/src/memory/SharedPtr.hpp
260
- - ext/libsass/src/node.cpp
261
- - ext/libsass/src/node.hpp
254
+ - ext/libsass/src/memory.hpp
255
+ - ext/libsass/src/memory/allocator.cpp
256
+ - ext/libsass/src/memory/allocator.hpp
257
+ - ext/libsass/src/memory/config.hpp
258
+ - ext/libsass/src/memory/memory_pool.hpp
259
+ - ext/libsass/src/memory/shared_ptr.cpp
260
+ - ext/libsass/src/memory/shared_ptr.hpp
262
261
  - ext/libsass/src/operation.hpp
263
262
  - ext/libsass/src/operators.cpp
264
263
  - ext/libsass/src/operators.hpp
264
+ - ext/libsass/src/ordered_map.hpp
265
265
  - ext/libsass/src/output.cpp
266
266
  - ext/libsass/src/output.hpp
267
267
  - ext/libsass/src/parser.cpp
268
268
  - ext/libsass/src/parser.hpp
269
- - ext/libsass/src/paths.hpp
269
+ - ext/libsass/src/parser_selectors.cpp
270
+ - ext/libsass/src/permutate.hpp
270
271
  - ext/libsass/src/plugins.cpp
271
272
  - ext/libsass/src/plugins.hpp
272
273
  - ext/libsass/src/position.cpp
@@ -282,17 +283,16 @@ files:
282
283
  - ext/libsass/src/sass_context.hpp
283
284
  - ext/libsass/src/sass_functions.cpp
284
285
  - ext/libsass/src/sass_functions.hpp
285
- - ext/libsass/src/sass_util.cpp
286
- - ext/libsass/src/sass_util.hpp
287
286
  - ext/libsass/src/sass_values.cpp
288
287
  - ext/libsass/src/sass_values.hpp
288
+ - ext/libsass/src/settings.hpp
289
+ - ext/libsass/src/source.cpp
290
+ - ext/libsass/src/source.hpp
291
+ - ext/libsass/src/source_data.hpp
289
292
  - ext/libsass/src/source_map.cpp
290
293
  - ext/libsass/src/source_map.hpp
291
- - ext/libsass/src/subset_map.cpp
292
- - ext/libsass/src/subset_map.hpp
293
- - ext/libsass/src/support/libsass.pc.in
294
- - ext/libsass/src/to_c.cpp
295
- - ext/libsass/src/to_c.hpp
294
+ - ext/libsass/src/stylesheet.cpp
295
+ - ext/libsass/src/stylesheet.hpp
296
296
  - ext/libsass/src/to_value.cpp
297
297
  - ext/libsass/src/to_value.hpp
298
298
  - ext/libsass/src/units.cpp
@@ -305,21 +305,10 @@ files:
305
305
  - ext/libsass/src/utf8_string.hpp
306
306
  - ext/libsass/src/util.cpp
307
307
  - ext/libsass/src/util.hpp
308
+ - ext/libsass/src/util_string.cpp
309
+ - ext/libsass/src/util_string.hpp
308
310
  - ext/libsass/src/values.cpp
309
311
  - ext/libsass/src/values.hpp
310
- - ext/libsass/test/test_node.cpp
311
- - ext/libsass/test/test_paths.cpp
312
- - ext/libsass/test/test_selector_difference.cpp
313
- - ext/libsass/test/test_specificity.cpp
314
- - ext/libsass/test/test_subset_map.cpp
315
- - ext/libsass/test/test_superselector.cpp
316
- - ext/libsass/test/test_unification.cpp
317
- - ext/libsass/version.sh
318
- - ext/libsass/win/libsass.sln
319
- - ext/libsass/win/libsass.sln.DotSettings
320
- - ext/libsass/win/libsass.targets
321
- - ext/libsass/win/libsass.vcxproj
322
- - ext/libsass/win/libsass.vcxproj.filters
323
312
  - lib/sassc.rb
324
313
  - lib/sassc/dependency.rb
325
314
  - lib/sassc/engine.rb
@@ -328,7 +317,6 @@ files:
328
317
  - lib/sassc/import_handler.rb
329
318
  - lib/sassc/importer.rb
330
319
  - lib/sassc/native.rb
331
- - lib/sassc/native/lib_c.rb
332
320
  - lib/sassc/native/native_context_api.rb
333
321
  - lib/sassc/native/native_functions_api.rb
334
322
  - lib/sassc/native/sass2scss_api.rb
@@ -357,7 +345,6 @@ files:
357
345
  - lib/sassc/util.rb
358
346
  - lib/sassc/util/normalized_map.rb
359
347
  - lib/sassc/version.rb
360
- - lib/tasks/libsass.rb
361
348
  - sassc.gemspec
362
349
  - test/custom_importer_test.rb
363
350
  - test/engine_test.rb
@@ -380,15 +367,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
380
367
  requirements:
381
368
  - - ">="
382
369
  - !ruby/object:Gem::Version
383
- version: 2.3.3
370
+ version: 2.0.0
384
371
  required_rubygems_version: !ruby/object:Gem::Requirement
385
372
  requirements:
386
373
  - - ">="
387
374
  - !ruby/object:Gem::Version
388
375
  version: '0'
389
376
  requirements: []
390
- rubyforge_project:
391
- rubygems_version: 2.7.6
377
+ rubygems_version: 3.1.2
392
378
  signing_key:
393
379
  specification_version: 4
394
380
  summary: Use libsass with Ruby!