sass-embedded 0.7.4 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8a920bc1fd2f9767c87dcc604c8ad44266b285310a7b0e9e46cf65c7a610ba4d
4
- data.tar.gz: 8041922c104b94fb0bc4634735444315692a0d9a37a50db3cf213a9914455bb0
3
+ metadata.gz: 107eda35f850f6a5d3744a89ba8dcd71abf8ea76659f0c51710ecde9f3233c53
4
+ data.tar.gz: f3e8d8d963f9a3bfffa00908b91e90d17fd4e9a04046a6c9a739e16b3eae5cb5
5
5
  SHA512:
6
- metadata.gz: 180d0212926afd166fafc991cf30e8af33adc843171ec69d53a4b42ad7d587857e77a224cf8c25f343af7bacd6b76eeb5f2b93fd7c9886d2fd83105de3d891cc
7
- data.tar.gz: 3d91c28089e6157b815a63cdc5b93d8adc2bb81f56828d6e3554c633ed31d845c070361797f32b45ae3bfbc39e034866a2c8e17f80a2222b5c827f9a2669a985
6
+ metadata.gz: a9e2dcfbd314b616b66c53511fe021006c20e0a359bb9769db7bf87d14d9377443e245abf88f5da6e1b4414d34d4d05e529885b79169db7c86f8029ed3c7f1f5
7
+ data.tar.gz: d8ade839bab88a4ff4098f1b045b31dfd532570dbadcb76866fc3c13be603c445583ea2fe2b86aa9ba7b2472272f992d9dd28ce21eb64aaf8693d1ec557660b9
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 = RenderContext.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)
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
data/lib/sass/render.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Sass
4
4
  # The {Observer} for {Embedded#render}.
5
- class Render
5
+ class RenderContext
6
6
  include Observer
7
7
 
8
8
  def initialize(transport, id,
@@ -28,8 +28,12 @@ module Sass
28
28
  @observerable_mutex = Mutex.new
29
29
  @stdin_mutex = Mutex.new
30
30
  @stdin, @stdout, @stderr, @wait_thread = Open3.popen3(DART_SASS_EMBEDDED)
31
- pipe @stderr, $stderr
32
- read @stdout
31
+ poll do
32
+ $stderr.write @stderr.readline
33
+ end
34
+ poll do
35
+ receive_proto read
36
+ end
33
37
  end
34
38
 
35
39
  def add_observer(*args)
@@ -58,44 +62,37 @@ module Sass
58
62
 
59
63
  private
60
64
 
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)
65
+ def poll
69
66
  Thread.new do
70
67
  loop do
71
- writeable.write readable.readline
68
+ yield
72
69
  rescue Interrupt
73
70
  break
74
71
  rescue IOError => e
75
- receive_message(e, nil)
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
+ message = EmbeddedProtocol::OutboundMessage.decode(proto)
88
+ notify_observers(nil, message[message.message.to_s])
89
+ end
90
+
91
+ def read
92
+ length = read_varint(@stdout)
93
+ @stdout.read(length)
94
+ end
95
+
99
96
  def write(payload)
100
97
  @stdin_mutex.synchronize do
101
98
  write_varint(@stdin, payload.length)
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.5'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
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.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - なつき
@@ -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.5
169
169
  post_install_message:
170
170
  rdoc_options: []
171
171
  require_paths: