sassc 2.2.1-x64-mingw32 → 2.3.0-x64-mingw32

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 075ea4c5b934656424ea13431dddca99f1dcc328c5ab414dd41e5007dd80daa1
4
- data.tar.gz: 5a0c1726b247d0fb43f74f80731b92d11386961de35aae676fba8d970d84dec9
3
+ metadata.gz: a6bc1ff62c2fab790b9ad7fb95bd254fcb68240d77550d2b8f15d458a6159284
4
+ data.tar.gz: d2e0f83641bda9242b3e470ebf915f177429fd1223b64ccf0287fe734513c389
5
5
  SHA512:
6
- metadata.gz: 320cce2c07fdebae40d9793f3706bbfaa61ead47fb66c471987d2e9cc00b050349a4c82f8285d8b37e6680bcb5ce5d41933066ab5a30abb209b6e4ad06beef01
7
- data.tar.gz: df3c28ec06726e8a7d94eee5afe0f0faee0db693049d07b5fa098a108f61c327a17f727eb680234ea452319c7e11d3aa9d79b57749e14cfc4971d3fe6d33f489
6
+ metadata.gz: 6b3f194e898c456a7bcf8e6be76ed0dc848bbd1d7e370f9aac689e4ccb3c5c93c43644ac61dfb81c660c83dda3b75a39d94668f9743d00900534234f999c51d9
7
+ data.tar.gz: 06ada6adeb32fddc828e45347b53172bc4dbe3ed7abf6d4b9c6725447c1baa8f93b09fe8f9c8bb289e9a4b3ca02b2e871848887ad09b5ebc7d24c6bad8009a07
@@ -10,5 +10,6 @@ rvm:
10
10
  - 2.4.6
11
11
  - 2.5.5
12
12
  - 2.6.3
13
+ - truffleruby
13
14
  notifications:
14
15
  email: false
@@ -1,3 +1,16 @@
1
+ - **2.3.0**
2
+ - [Fix rake gem:native task](https://github.com/sass/sassc-ruby/pull/196)
3
+ - [disable lto flag for darwin + nix](https://github.com/sass/sassc-ruby/pull/166)
4
+ - [Sort input file list](https://github.com/sass/sassc-ruby/pull/178)
5
+ - [Set appropriate encoding for source_map](https://github.com/sass/sassc-ruby/pull/152)
6
+ - [allow passing functions directly](https://github.com/sass/sassc-ruby/pull/162)
7
+ - [always dispose data context](https://github.com/sass/sassc-ruby/pull/161)
8
+ - [Update libsass to 3.6.3](https://github.com/sass/sassc-ruby/pull/164)
9
+ - [Restore strip symbols](https://github.com/sass/sassc-ruby/pull/184)
10
+ - [Default --march-tune-native to false](https://github.com/sass/sassc-ruby/pull/158)
11
+ - [Fix compile issue on Mac OS X](https://github.com/sass/sassc-ruby/pull/174)
12
+ - [Test on TruffleRuby in TravisCI](https://github.com/sass/sassc-ruby/pull/171)
13
+ - [Use RbConfig::MAKEFILE_CONFIG['DLEXT'] instead of hardcoding extensions](https://github.com/sass/sassc-ruby/pull/173)
1
14
  - **2.2.1**
2
15
  - [Fix LoadError on some non-rvm environments](https://github.com/sass/sassc-ruby/pull/156)
3
16
  - **2.2.0**
data/Rakefile CHANGED
@@ -36,9 +36,7 @@ task 'gem:native' do
36
36
 
37
37
  # The RUBY_CC_VERSION here doesn't matter for the final package.
38
38
  # Only one version should be specified, as the shared library is Ruby-agnostic.
39
- #
40
- # g++-multilib is installed for 64->32-bit cross-compilation.
41
- RakeCompilerDock.sh "sudo apt-get install -y g++-multilib && gem i rake bundler --no-document && bundle && "\
39
+ RakeCompilerDock.sh "gem i rake bundler --no-document && bundle && "\
42
40
  "rake clean && rake cross native gem MAKE='nice make -j`nproc`' "\
43
41
  "RUBY_CC_VERSION=2.6.0 CLEAN=1"
44
42
  end
@@ -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
@@ -6,24 +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
15
  # use an anonymous class wrapper to avoid mutations in a threaded environment
16
- functions = Class.new do
16
+ functions_wrapper = Class.new do
17
17
  attr_accessor :options
18
- include Script::Functions
18
+ include functions
19
19
  end.new
20
- functions.options = @options
20
+ functions_wrapper.options = @options
21
21
 
22
- Script.custom_functions.each_with_index do |custom_function, i|
22
+ Script.custom_functions(functions: functions).each_with_index do |custom_function, i|
23
23
  @callbacks[custom_function] = FFI::Function.new(:pointer, [:pointer, :pointer]) do |native_argument_list, cookie|
24
24
  begin
25
25
  function_arguments = arguments_from_native_list(native_argument_list)
26
- result = functions.send(custom_function, *function_arguments)
26
+ result = functions_wrapper.send(custom_function, *function_arguments)
27
27
  to_native_value(result)
28
28
  rescue StandardError => exception
29
29
  # This rescues any exceptions that occur either in value conversion
@@ -32,7 +32,7 @@ module SassC
32
32
  end
33
33
  end
34
34
 
35
- @function_names[custom_function] = Script.formatted_function_name(custom_function)
35
+ @function_names[custom_function] = Script.formatted_function_name(custom_function, functions: functions)
36
36
 
37
37
  callback = Native.make_function(
38
38
  @function_names[custom_function],
@@ -6,7 +6,7 @@ module SassC
6
6
  module Native
7
7
  extend FFI::Library
8
8
 
9
- dl_ext = (RbConfig::CONFIG['host_os'] =~ /darwin/ ? 'bundle' : 'so')
9
+ dl_ext = RbConfig::MAKEFILE_CONFIG['DLEXT']
10
10
  begin
11
11
  ffi_lib File.expand_path("libsass.#{dl_ext}", __dir__)
12
12
  rescue LoadError # Some non-rvm environments don't copy a shared object over to lib/sassc
@@ -3,12 +3,12 @@
3
3
  module SassC
4
4
  module Script
5
5
 
6
- def self.custom_functions
7
- Functions.public_instance_methods
6
+ def self.custom_functions(functions: Functions)
7
+ functions.public_instance_methods
8
8
  end
9
9
 
10
- def self.formatted_function_name(function_name)
11
- 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
12
12
  params = params.map { |param_type, name| "$#{name}#{': null' if param_type == :opt}" }.join(", ")
13
13
  return "#{function_name}(#{params})"
14
14
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SassC
4
- VERSION = "2.2.1"
4
+ VERSION = "2.3.0"
5
5
  end
@@ -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
@@ -201,6 +201,17 @@ module SassC
201
201
  end
202
202
  end
203
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
+
204
215
  private
205
216
 
206
217
  def assert_sass(sass, expected_css)
@@ -319,5 +330,11 @@ module SassC
319
330
 
320
331
  end
321
332
 
333
+ module ExternalFunctions
334
+ def test_function
335
+ SassC::Script::Value::String.new("custom_function", :string)
336
+ end
337
+ end
338
+
322
339
  end
323
340
  end
@@ -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.6.1", Native.version
14
+ assert_equal "3.6.3", Native.version
15
15
  end
16
16
  end
17
17
 
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.2.1
4
+ version: 2.3.0
5
5
  platform: x64-mingw32
6
6
  authors:
7
7
  - Ryan Boland
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-18 00:00:00.000000000 Z
11
+ date: 2020-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -219,8 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
219
219
  - !ruby/object:Gem::Version
220
220
  version: '0'
221
221
  requirements: []
222
- rubyforge_project:
223
- rubygems_version: 2.7.9
222
+ rubygems_version: 3.1.2
224
223
  signing_key:
225
224
  specification_version: 4
226
225
  summary: Use libsass with Ruby!