sass-embedded 0.18.3 → 0.19.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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/ext/sass/extconf.rb +5 -3
  3. data/lib/sass/embedded/async.rb +65 -0
  4. data/lib/sass/embedded/channel.rb +21 -22
  5. data/lib/sass/embedded/compiler.rb +17 -83
  6. data/lib/sass/embedded/dispatcher.rb +92 -0
  7. data/lib/sass/embedded/{compile_context → host}/function_registry.rb +6 -4
  8. data/lib/sass/embedded/{compile_context → host}/importer_registry.rb +13 -9
  9. data/lib/sass/embedded/{compile_context → host}/logger_registry.rb +14 -9
  10. data/lib/sass/embedded/{compile_context → host}/value_protofier.rb +4 -2
  11. data/lib/sass/embedded/host.rb +135 -0
  12. data/lib/sass/embedded/legacy.rb +0 -2
  13. data/lib/sass/embedded/protofier.rb +18 -32
  14. data/lib/sass/embedded/structifier.rb +3 -1
  15. data/lib/sass/embedded/varint.rb +3 -1
  16. data/lib/sass/embedded/version.rb +1 -1
  17. data/lib/sass/embedded.rb +37 -39
  18. data/lib/sass/value/argument_list.rb +2 -2
  19. data/lib/sass/value/boolean.rb +5 -3
  20. data/lib/sass/value/color.rb +12 -5
  21. data/lib/sass/value/function.rb +5 -3
  22. data/lib/sass/value/fuzzy_math.rb +1 -1
  23. data/lib/sass/value/list.rb +5 -3
  24. data/lib/sass/value/map.rb +5 -3
  25. data/lib/sass/value/null.rb +5 -3
  26. data/lib/sass/value/number/unit.rb +1 -1
  27. data/lib/sass/value/number.rb +5 -3
  28. data/lib/sass/value/string.rb +6 -5
  29. data/lib/sass/value.rb +2 -3
  30. data/lib/sass.rb +8 -13
  31. metadata +11 -12
  32. data/lib/sass/embedded/compile_context.rb +0 -107
  33. data/lib/sass/embedded/observer.rb +0 -49
  34. data/lib/sass/embedded/protocol_error.rb +0 -7
  35. data/lib/sass/embedded/version_context.rb +0 -35
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Sass
4
- class Embedded
5
- # The {Observer} module for communicating with {Compiler}.
6
- module Observer
7
- def initialize(channel)
8
- @mutex = Mutex.new
9
- @condition_variable = ConditionVariable.new
10
- @error = nil
11
- @message = nil
12
-
13
- @subscription = channel.subscribe(self)
14
- end
15
-
16
- def receive_message
17
- @mutex.synchronize do
18
- @condition_variable.wait(@mutex) if @error.nil? && @message.nil?
19
- end
20
-
21
- raise @error unless @error.nil?
22
-
23
- @message
24
- end
25
-
26
- def update(error, message)
27
- @subscription.unsubscribe
28
-
29
- @mutex.synchronize do
30
- @error = error
31
- @message = message
32
- @condition_variable.broadcast
33
- end
34
- end
35
-
36
- private
37
-
38
- def id
39
- @subscription.id
40
- end
41
-
42
- def send_message(*args)
43
- @subscription.send_message(*args)
44
- end
45
- end
46
-
47
- private_constant :Observer
48
- end
49
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Sass
4
- class Embedded
5
- class ProtocolError < StandardError; end
6
- end
7
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Sass
4
- class Embedded
5
- # The {Observer} for {Embedded#info}.
6
- class VersionContext
7
- include Observer
8
-
9
- def initialize(channel)
10
- super(channel)
11
-
12
- send_message EmbeddedProtocol::InboundMessage::VersionRequest.new(id: id)
13
- end
14
-
15
- def update(error, message)
16
- raise error unless error.nil?
17
-
18
- case message
19
- when EmbeddedProtocol::OutboundMessage::VersionResponse
20
- return unless message.id == id
21
-
22
- Thread.new do
23
- super(nil, message)
24
- end
25
- end
26
- rescue StandardError => e
27
- Thread.new do
28
- super(e, nil)
29
- end
30
- end
31
- end
32
-
33
- private_constant :VersionContext
34
- end
35
- end