sass-embedded 0.16.2 → 0.18.2
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 +4 -4
- data/ext/sass/extconf.rb +4 -49
- data/ext/sass/package.json +5 -0
- data/lib/sass/compile_error.rb +11 -3
- data/lib/sass/embedded/compile_context/function_registry.rb +6 -3
- data/lib/sass/embedded/compile_context/importer_registry.rb +6 -4
- data/lib/sass/embedded/compile_context/value_protofier.rb +1 -1
- data/lib/sass/embedded/compile_context.rb +2 -2
- data/lib/sass/embedded/compiler.rb +11 -4
- data/lib/sass/embedded/legacy.rb +1 -1
- data/lib/sass/embedded/protofier.rb +2 -2
- data/lib/sass/embedded/structifier.rb +5 -1
- data/lib/sass/embedded/version.rb +1 -1
- data/lib/sass.rb +0 -1
- metadata +6 -7
- data/lib/sass/embedded/compiler/path.rb +0 -11
- data/lib/sass/embedded/compiler/requirements.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9eeafb6dcad576b707936df8fe78e0de78712c7a1fb51c0adc372a83721d371
|
4
|
+
data.tar.gz: 5f1a354a8c9b08f37f6215c9d9a53582b0eef7e48f62c84d910671ae960b2677
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50ac1de6a47ac9becebe4f229ffd6befbc25a0a481a4551e88fc600ff8934f554ab1ecc35bee8e68847d5d2315058d9a21a4952cd4ee86b3ccf011c21ec62ed9
|
7
|
+
data.tar.gz: daa53389ab4d49e5d8a6189eaf4391a978a640444b79279b401beac6070086db4903786b4df9d6ee9a0216a4391e3f4cb32a9be2c1c25c4ec9eae3a145f065c1
|
data/ext/sass/extconf.rb
CHANGED
@@ -5,8 +5,7 @@ require 'fileutils'
|
|
5
5
|
require 'json'
|
6
6
|
require 'mkmf'
|
7
7
|
require 'open-uri'
|
8
|
-
require_relative '../../lib/sass/embedded/compiler
|
9
|
-
require_relative '../../lib/sass/embedded/compiler/requirements'
|
8
|
+
require_relative '../../lib/sass/embedded/compiler'
|
10
9
|
|
11
10
|
module Sass
|
12
11
|
class Embedded
|
@@ -123,56 +122,12 @@ module Sass
|
|
123
122
|
raise
|
124
123
|
end
|
125
124
|
|
126
|
-
def resolve_tag_name(repo, *requirements, gh_release: true)
|
127
|
-
requirements = Gem::Requirement.create(*requirements)
|
128
|
-
|
129
|
-
satisfied = lambda { |version|
|
130
|
-
Gem::Version.correct?(version) && requirements.satisfied_by?(Gem::Version.new(version))
|
131
|
-
}
|
132
|
-
|
133
|
-
headers = {}
|
134
|
-
headers['Authorization'] = "token #{ENV['GITHUB_TOKEN']}" if ENV['GITHUB_TOKEN']
|
135
|
-
|
136
|
-
begin
|
137
|
-
if gh_release
|
138
|
-
releases_uri = "https://github.com/#{repo}/releases"
|
139
|
-
uri = "#{releases_uri}/latest"
|
140
|
-
tag_name = URI.parse(uri).open do |file|
|
141
|
-
return nil if file.base_uri == releases_uri
|
142
|
-
|
143
|
-
latest = File.basename file.base_uri.to_s
|
144
|
-
latest if satisfied.call latest
|
145
|
-
end
|
146
|
-
|
147
|
-
return tag_name unless tag_name.nil?
|
148
|
-
|
149
|
-
uri = "https://api.github.com/repos/#{repo}/releases?per_page=100"
|
150
|
-
tag_name = URI.parse(uri).open(headers) do |file|
|
151
|
-
JSON.parse(file.read).map { |release| release['tag_name'] }
|
152
|
-
end
|
153
|
-
.find(satisfied)&.peek
|
154
|
-
else
|
155
|
-
uri = "https://api.github.com/repos/#{repo}/tags?per_page=100"
|
156
|
-
tag_name = URI.parse(uri).open(headers) do |file|
|
157
|
-
JSON.parse(file.read).map { |tag| tag['name'] }
|
158
|
-
end
|
159
|
-
.find(satisfied)&.peek
|
160
|
-
end
|
161
|
-
|
162
|
-
return tag_name unless tag_name.nil?
|
163
|
-
rescue OpenURI::HTTPError => e
|
164
|
-
warn "WARNING: Error fetching #{uri}: #{e}"
|
165
|
-
end
|
166
|
-
|
167
|
-
requirements.requirements
|
168
|
-
.map { |requirement| requirement.last.to_s.gsub('.pre.', '-') }
|
169
|
-
.find(satisfied)&.peek
|
170
|
-
end
|
171
|
-
|
172
125
|
def default_sass_embedded
|
173
126
|
repo = 'sass/dart-sass-embedded'
|
174
127
|
|
175
|
-
|
128
|
+
spec = JSON.parse(File.read(File.absolute_path('package.json', __dir__)))
|
129
|
+
|
130
|
+
tag_name = spec['dependencies']['sass-embedded']
|
176
131
|
|
177
132
|
os = case Platform::OS
|
178
133
|
when 'darwin'
|
data/lib/sass/compile_error.rb
CHANGED
@@ -3,13 +3,21 @@
|
|
3
3
|
module Sass
|
4
4
|
# An exception thrown because a Sass compilation failed.
|
5
5
|
class CompileError < StandardError
|
6
|
-
attr_accessor :
|
6
|
+
attr_accessor :sass_stack, :span
|
7
7
|
|
8
|
-
def initialize(message,
|
8
|
+
def initialize(message, full_message, sass_stack, span)
|
9
9
|
super(message)
|
10
|
-
@
|
10
|
+
@full_message = full_message
|
11
11
|
@sass_stack = sass_stack
|
12
12
|
@span = span
|
13
13
|
end
|
14
|
+
|
15
|
+
def full_message(*_args, **_kwargs)
|
16
|
+
if @full_message.nil?
|
17
|
+
super
|
18
|
+
else
|
19
|
+
@full_message
|
20
|
+
end
|
21
|
+
end
|
14
22
|
end
|
15
23
|
end
|
@@ -7,7 +7,7 @@ module Sass
|
|
7
7
|
class FunctionRegistry
|
8
8
|
attr_reader :global_functions
|
9
9
|
|
10
|
-
def initialize(functions)
|
10
|
+
def initialize(functions, highlight:)
|
11
11
|
functions = functions.transform_keys(&:to_s)
|
12
12
|
|
13
13
|
@global_functions = functions.keys
|
@@ -20,9 +20,12 @@ module Sass
|
|
20
20
|
signature
|
21
21
|
end
|
22
22
|
end
|
23
|
+
|
24
|
+
@id = 0
|
23
25
|
@functions_by_id = {}
|
24
26
|
@ids_by_function = {}
|
25
|
-
|
27
|
+
|
28
|
+
@highlight = highlight
|
26
29
|
end
|
27
30
|
|
28
31
|
def register(function)
|
@@ -59,7 +62,7 @@ module Sass
|
|
59
62
|
rescue StandardError => e
|
60
63
|
EmbeddedProtocol::InboundMessage::FunctionCallResponse.new(
|
61
64
|
id: function_call_request.id,
|
62
|
-
error: e.
|
65
|
+
error: e.full_message(highlight: @highlight, order: :top)
|
63
66
|
)
|
64
67
|
end
|
65
68
|
|
@@ -7,7 +7,7 @@ module Sass
|
|
7
7
|
class ImporterRegistry
|
8
8
|
attr_reader :importers
|
9
9
|
|
10
|
-
def initialize(importers, load_paths)
|
10
|
+
def initialize(importers, load_paths, highlight:)
|
11
11
|
@id = 0
|
12
12
|
@importers_by_id = {}
|
13
13
|
@importers = importers
|
@@ -17,6 +17,8 @@ module Sass
|
|
17
17
|
path: File.absolute_path(load_path)
|
18
18
|
)
|
19
19
|
end)
|
20
|
+
|
21
|
+
@highlight = highlight
|
20
22
|
end
|
21
23
|
|
22
24
|
def register(importer)
|
@@ -52,7 +54,7 @@ module Sass
|
|
52
54
|
rescue StandardError => e
|
53
55
|
EmbeddedProtocol::InboundMessage::CanonicalizeResponse.new(
|
54
56
|
id: canonicalize_request.id,
|
55
|
-
error: e.
|
57
|
+
error: e.full_message(highlight: @highlight, order: :top)
|
56
58
|
)
|
57
59
|
end
|
58
60
|
|
@@ -71,7 +73,7 @@ module Sass
|
|
71
73
|
rescue StandardError => e
|
72
74
|
EmbeddedProtocol::InboundMessage::ImportResponse.new(
|
73
75
|
id: import_request.id,
|
74
|
-
error: e.
|
76
|
+
error: e.full_message(highlight: @highlight, order: :top)
|
75
77
|
)
|
76
78
|
end
|
77
79
|
|
@@ -88,7 +90,7 @@ module Sass
|
|
88
90
|
rescue StandardError => e
|
89
91
|
EmbeddedProtocol::InboundMessage::FileImportResponse.new(
|
90
92
|
id: file_import_request.id,
|
91
|
-
error: e.
|
93
|
+
error: e.full_message(highlight: @highlight, order: :top)
|
92
94
|
)
|
93
95
|
end
|
94
96
|
end
|
@@ -27,8 +27,8 @@ module Sass
|
|
27
27
|
logger:,
|
28
28
|
quiet_deps:,
|
29
29
|
verbose:)
|
30
|
-
@function_registery = FunctionRegistry.new(functions)
|
31
|
-
@importer_registery = ImporterRegistry.new(importers, load_paths)
|
30
|
+
@function_registery = FunctionRegistry.new(functions, highlight: alert_color)
|
31
|
+
@importer_registery = ImporterRegistry.new(importers, load_paths, highlight: alert_color)
|
32
32
|
@logger_registery = LoggerRegistry.new(logger)
|
33
33
|
|
34
34
|
super(channel)
|
@@ -11,6 +11,10 @@ module Sass
|
|
11
11
|
class Compiler
|
12
12
|
include Observable
|
13
13
|
|
14
|
+
PATH = File.absolute_path(
|
15
|
+
"../../../ext/sass/sass_embedded/dart-sass-embedded#{Gem.win_platform? ? '.bat' : ''}", __dir__
|
16
|
+
)
|
17
|
+
|
14
18
|
PROTOCOL_ERROR_ID = 4_294_967_295
|
15
19
|
|
16
20
|
def initialize
|
@@ -81,9 +85,7 @@ module Sass
|
|
81
85
|
Thread.new do
|
82
86
|
loop do
|
83
87
|
yield
|
84
|
-
rescue StandardError
|
85
|
-
notify_observers(e, nil)
|
86
|
-
close
|
88
|
+
rescue StandardError
|
87
89
|
break
|
88
90
|
end
|
89
91
|
end
|
@@ -99,7 +101,8 @@ module Sass
|
|
99
101
|
def receive_message(message)
|
100
102
|
case message
|
101
103
|
when EmbeddedProtocol::ProtocolError
|
102
|
-
|
104
|
+
notify_observers(ProtocolError.new(message.message), nil)
|
105
|
+
close
|
103
106
|
else
|
104
107
|
notify_observers(nil, message)
|
105
108
|
end
|
@@ -108,6 +111,10 @@ module Sass
|
|
108
111
|
def read
|
109
112
|
length = Varint.read(@stdout)
|
110
113
|
@stdout.read(length)
|
114
|
+
rescue IOError => e
|
115
|
+
notify_observers(e, nil)
|
116
|
+
close
|
117
|
+
raise e
|
111
118
|
end
|
112
119
|
|
113
120
|
def write(payload)
|
data/lib/sass/embedded/legacy.rb
CHANGED
@@ -18,8 +18,8 @@ module Sass
|
|
18
18
|
def from_proto_compile_response(compile_response)
|
19
19
|
if compile_response.result == :failure
|
20
20
|
raise CompileError.new(
|
21
|
-
compile_response.failure.formatted || compile_response.failure.message,
|
22
21
|
compile_response.failure.message,
|
22
|
+
compile_response.failure.formatted,
|
23
23
|
compile_response.failure.stack_trace,
|
24
24
|
from_proto_source_span(compile_response.failure.span)
|
25
25
|
)
|
@@ -52,7 +52,7 @@ module Sass
|
|
52
52
|
|
53
53
|
def from_proto_message(proto)
|
54
54
|
message = EmbeddedProtocol::OutboundMessage.decode(proto)
|
55
|
-
message.
|
55
|
+
message.send(message.message)
|
56
56
|
end
|
57
57
|
|
58
58
|
def to_proto_message(message)
|
@@ -13,7 +13,11 @@ module Sass
|
|
13
13
|
obj.each do |key, value|
|
14
14
|
if value.respond_to? :call
|
15
15
|
struct.define_singleton_method key.to_sym do |*args, **kwargs|
|
16
|
-
|
16
|
+
if kwargs.empty?
|
17
|
+
value.call(*args)
|
18
|
+
else
|
19
|
+
value.call(*args, **kwargs)
|
20
|
+
end
|
17
21
|
end
|
18
22
|
else
|
19
23
|
struct.define_singleton_method key.to_sym do
|
data/lib/sass.rb
CHANGED
@@ -11,7 +11,6 @@ require_relative 'sass/embedded/compile_context/importer_registry'
|
|
11
11
|
require_relative 'sass/embedded/compile_context/logger_registry'
|
12
12
|
require_relative 'sass/embedded/compile_context/value_protofier'
|
13
13
|
require_relative 'sass/embedded/compiler'
|
14
|
-
require_relative 'sass/embedded/compiler/path'
|
15
14
|
require_relative 'sass/embedded_protocol'
|
16
15
|
require_relative 'sass/embedded/legacy'
|
17
16
|
require_relative 'sass/embedded/protocol_error'
|
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.
|
4
|
+
version: 0.18.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- なつき
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-protobuf
|
@@ -121,6 +121,7 @@ files:
|
|
121
121
|
- README.md
|
122
122
|
- ext/sass/Makefile
|
123
123
|
- ext/sass/extconf.rb
|
124
|
+
- ext/sass/package.json
|
124
125
|
- ext/sass/unzip.vbs
|
125
126
|
- lib/sass-embedded.rb
|
126
127
|
- lib/sass.rb
|
@@ -134,8 +135,6 @@ files:
|
|
134
135
|
- lib/sass/embedded/compile_context/logger_registry.rb
|
135
136
|
- lib/sass/embedded/compile_context/value_protofier.rb
|
136
137
|
- lib/sass/embedded/compiler.rb
|
137
|
-
- lib/sass/embedded/compiler/path.rb
|
138
|
-
- lib/sass/embedded/compiler/requirements.rb
|
139
138
|
- lib/sass/embedded/legacy.rb
|
140
139
|
- lib/sass/embedded/observer.rb
|
141
140
|
- lib/sass/embedded/protocol_error.rb
|
@@ -165,8 +164,8 @@ homepage: https://github.com/ntkme/sass-embedded-host-ruby
|
|
165
164
|
licenses:
|
166
165
|
- MIT
|
167
166
|
metadata:
|
168
|
-
documentation_uri: https://www.rubydoc.info/gems/sass-embedded/0.
|
169
|
-
source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.
|
167
|
+
documentation_uri: https://www.rubydoc.info/gems/sass-embedded/0.18.2
|
168
|
+
source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.18.2
|
170
169
|
funding_uri: https://github.com/sponsors/ntkme
|
171
170
|
post_install_message:
|
172
171
|
rdoc_options: []
|
@@ -176,7 +175,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
176
175
|
requirements:
|
177
176
|
- - ">="
|
178
177
|
- !ruby/object:Gem::Version
|
179
|
-
version: 2.
|
178
|
+
version: 2.6.0
|
180
179
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
181
180
|
requirements:
|
182
181
|
- - ">="
|