sass-embedded 0.7.4 → 0.7.9

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: 8a920bc1fd2f9767c87dcc604c8ad44266b285310a7b0e9e46cf65c7a610ba4d
4
- data.tar.gz: 8041922c104b94fb0bc4634735444315692a0d9a37a50db3cf213a9914455bb0
3
+ metadata.gz: af2d3d643f4731906f3b71e6340fb733dafdb85a09892c3fbf0ddac377835fcc
4
+ data.tar.gz: a7827876ce4b50f3f5165aad572a1d1512c0161ac121efe234a0607495aec822
5
5
  SHA512:
6
- metadata.gz: 180d0212926afd166fafc991cf30e8af33adc843171ec69d53a4b42ad7d587857e77a224cf8c25f343af7bacd6b76eeb5f2b93fd7c9886d2fd83105de3d891cc
7
- data.tar.gz: 3d91c28089e6157b815a63cdc5b93d8adc2bb81f56828d6e3554c633ed31d845c070361797f32b45ae3bfbc39e034866a2c8e17f80a2222b5c827f9a2669a985
6
+ metadata.gz: 6a2f02e3e0506330c5777d0b1bd8c13ef380e7329d3ba8d393d8e3ac7550e208eb27346a333094a9cc5b7ae16b8a031c2285727abff0f5b544f35257fc32451a
7
+ data.tar.gz: 5b87374beb7554219fccf1cdc9e692f724f595ec39ce710ae2153bd39d0a54fb1759763fabee651b708843081563c21e1fdf42873ccbd217f175cd2d8c75fea3
data/lib/sass.rb CHANGED
@@ -69,5 +69,5 @@ require_relative 'sass/error'
69
69
  require_relative 'sass/transport'
70
70
  require_relative 'sass/observer'
71
71
  require_relative 'sass/info'
72
- require_relative 'sass/render'
72
+ require_relative 'sass/compile'
73
73
  require_relative 'sass/embedded'
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Sass
4
4
  # The {Observer} for {Embedded#render}.
5
- class Render
5
+ class CompileContext
6
6
  include Observer
7
7
 
8
8
  def initialize(transport, id,
@@ -41,8 +41,6 @@ module Sass
41
41
  raise error unless error.nil?
42
42
 
43
43
  case message
44
- when EmbeddedProtocol::ProtocolError
45
- raise ProtocolError, message.message
46
44
  when EmbeddedProtocol::OutboundMessage::CompileResponse
47
45
  return unless message.id == @id
48
46
 
data/lib/sass/embedded.rb CHANGED
@@ -23,7 +23,7 @@ module Sass
23
23
  #
24
24
  # @raise [ProtocolError]
25
25
  def info
26
- @info ||= Version.new(@transport, next_id).message
26
+ @info ||= VersionContext.new(@transport, next_id).receive_message
27
27
  end
28
28
 
29
29
  # The {Embedded#render} method.
@@ -55,16 +55,16 @@ module Sass
55
55
  indent_width = parse_indent_width(indent_width)
56
56
  linefeed = parse_linefeed(linefeed)
57
57
 
58
- message = Render.new(@transport, next_id,
59
- data: data,
60
- file: file,
61
- indented_syntax: indented_syntax,
62
- include_paths: include_paths,
63
- output_style: output_style,
64
- source_map: source_map,
65
- out_file: out_file,
66
- functions: functions,
67
- importer: importer).message
58
+ message = CompileContext.new(@transport, next_id,
59
+ data: data,
60
+ file: file,
61
+ indented_syntax: indented_syntax,
62
+ include_paths: include_paths,
63
+ output_style: output_style,
64
+ source_map: source_map,
65
+ out_file: out_file,
66
+ functions: functions,
67
+ importer: importer).receive_message
68
68
 
69
69
  if message.failure
70
70
  raise RenderError.new(
data/lib/sass/info.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Sass
4
4
  # The {Observer} for {Embedded#info}.
5
- class Version
5
+ class VersionContext
6
6
  include Observer
7
7
 
8
8
  def initialize(transport, id)
@@ -17,8 +17,6 @@ module Sass
17
17
  raise error unless error.nil?
18
18
 
19
19
  case message
20
- when EmbeddedProtocol::ProtocolError
21
- raise ProtocolError, message.message
22
20
  when EmbeddedProtocol::OutboundMessage::VersionResponse
23
21
  return unless message.id == @id
24
22
 
data/lib/sass/observer.rb CHANGED
@@ -12,7 +12,7 @@ module Sass
12
12
  @transport.add_observer self
13
13
  end
14
14
 
15
- def message
15
+ def receive_message
16
16
  @mutex.synchronize do
17
17
  @condition_variable.wait(@mutex) if @error.nil? && @message.nil?
18
18
  end
@@ -24,12 +24,18 @@ module Sass
24
24
  [field_descriptor.subtype, field_descriptor.name]
25
25
  end.to_h
26
26
 
27
+ private_constant :ONEOF_MESSAGE
28
+
27
29
  def initialize
28
30
  @observerable_mutex = Mutex.new
29
31
  @stdin_mutex = Mutex.new
30
32
  @stdin, @stdout, @stderr, @wait_thread = Open3.popen3(DART_SASS_EMBEDDED)
31
- pipe @stderr, $stderr
32
- read @stdout
33
+ poll do
34
+ warn(@stderr.readline, uplevel: 1)
35
+ end
36
+ poll do
37
+ receive_proto read
38
+ end
33
39
  end
34
40
 
35
41
  def add_observer(*args)
@@ -58,44 +64,41 @@ module Sass
58
64
 
59
65
  private
60
66
 
61
- def receive_message(error, message)
62
- @observerable_mutex.synchronize do
63
- changed
64
- notify_observers error, message
65
- end
66
- end
67
-
68
- def pipe(readable, writeable)
67
+ def poll
69
68
  Thread.new do
70
69
  loop do
71
- writeable.write readable.readline
72
- rescue Interrupt
73
- break
74
- rescue IOError => e
75
- receive_message(e, nil)
70
+ yield
71
+ rescue StandardError => e
72
+ notify_observers(e, nil)
76
73
  close
77
74
  break
78
75
  end
79
76
  end
80
77
  end
81
78
 
82
- def read(readable)
83
- Thread.new do
84
- loop do
85
- length = read_varint(readable)
86
- payload = readable.read(length)
87
- message = EmbeddedProtocol::OutboundMessage.decode payload
88
- receive_message(nil, message[message.message.to_s])
89
- rescue Interrupt
90
- break
91
- rescue IOError => e
92
- receive_message(e, nil)
93
- close
94
- break
95
- end
79
+ def notify_observers(*args)
80
+ @observerable_mutex.synchronize do
81
+ changed
82
+ super(*args)
96
83
  end
97
84
  end
98
85
 
86
+ def receive_proto(proto)
87
+ payload = EmbeddedProtocol::OutboundMessage.decode(proto)
88
+ message = payload[payload.message.to_s]
89
+ case message
90
+ when EmbeddedProtocol::ProtocolError
91
+ raise ProtocolError, message.message
92
+ else
93
+ notify_observers(nil, message)
94
+ end
95
+ end
96
+
97
+ def read
98
+ length = read_varint(@stdout)
99
+ @stdout.read(length)
100
+ end
101
+
99
102
  def write(payload)
100
103
  @stdin_mutex.synchronize do
101
104
  write_varint(@stdin, payload.length)
data/lib/sass/util.rb CHANGED
@@ -10,6 +10,8 @@ module Sass
10
10
 
11
11
  URI_PARSER = URI::Parser.new({ RESERVED: ';/?:@&=+$,' })
12
12
 
13
+ private_constant :URI_PARSER
14
+
13
15
  def file_uri_from_path(path)
14
16
  absolute_path = File.absolute_path(path)
15
17
 
data/lib/sass/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Sass
4
- VERSION = '0.7.4'
4
+ VERSION = '0.7.9'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sass-embedded
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.7.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - なつき
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-31 00:00:00.000000000 Z
11
+ date: 2021-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -150,12 +150,12 @@ files:
150
150
  - ext/Makefile
151
151
  - ext/extconf.rb
152
152
  - lib/sass.rb
153
+ - lib/sass/compile.rb
153
154
  - lib/sass/embedded.rb
154
155
  - lib/sass/error.rb
155
156
  - lib/sass/info.rb
156
157
  - lib/sass/observer.rb
157
158
  - lib/sass/platform.rb
158
- - lib/sass/render.rb
159
159
  - lib/sass/result.rb
160
160
  - lib/sass/struct.rb
161
161
  - lib/sass/transport.rb
@@ -165,7 +165,7 @@ homepage: https://github.com/ntkme/sass-embedded-host-ruby
165
165
  licenses:
166
166
  - MIT
167
167
  metadata:
168
- source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.7.4
168
+ source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.7.9
169
169
  post_install_message:
170
170
  rdoc_options: []
171
171
  require_paths: