sass-embedded 1.0.17 → 1.0.18
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/Rakefile +102 -82
- data/lib/sass/embedded/compiler.rb +0 -4
- data/lib/sass/embedded/version.rb +1 -1
- data/lib/sass/embedded.rb +34 -0
- data/lib/sass.rb +0 -32
- metadata +6 -7
- data/lib/sass/embedded_protocol.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b701a29895bdd5f8ff05a4a23d972b1db3a64c20e29a75e02f6e3d52e7db762a
|
4
|
+
data.tar.gz: 900620c0e33b9ae961f231cb249b00a74d0306e74dfa06f35996571319e47328
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a5984ffbe81012da00d2b25101d4b8a850057684f880fb25a4c76041a2d93a79b8888919d61487fb74b4b4480e6be9b39f7ee2554408e62ad3fa6adb27a3341
|
7
|
+
data.tar.gz: 6450eafe143ecb655308d8c3c859c2a90c013bd753495fd6b12db87bea4ccb9bd89c616957ed08e47ef3a04daf90437a41b1836cef01f609750b9663044a96a1
|
data/ext/sass/Rakefile
CHANGED
@@ -1,17 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'json'
|
4
|
-
require 'open-uri'
|
5
|
-
require 'open3'
|
6
3
|
require 'rake/clean'
|
7
4
|
|
8
5
|
task default: %i[install clean]
|
9
6
|
|
10
|
-
task install: %w[sass_embedded embedded_sass_pb.rb]
|
7
|
+
task install: %w[sass_embedded embedded.rb embedded_sass_pb.rb]
|
11
8
|
|
12
9
|
CLEAN.include %w[protoc.exe *.proto *.tar.gz *.zip]
|
13
10
|
|
14
|
-
CLOBBER.include %w[sass_embedded embedded_sass_pb.rb]
|
11
|
+
CLOBBER.include %w[sass_embedded embedded.rb embedded_sass_pb.rb]
|
15
12
|
|
16
13
|
file 'protoc.exe' do |t|
|
17
14
|
fetch(ENV.fetch('PROTOC_BIN') { Configuration.default_protoc }, t.name)
|
@@ -24,12 +21,31 @@ file 'sass_embedded' do |t|
|
|
24
21
|
rm archive
|
25
22
|
end
|
26
23
|
|
27
|
-
file '
|
24
|
+
file 'embedded.rb' => %w[sass_embedded] do |t|
|
25
|
+
path = 'sass_embedded/dart-sass-embedded'
|
26
|
+
path = "#{path}#{(Gem.win_platform? ? ['.exe', '.bat'] : ['', '.sh']).find { |ext| File.exist? "#{path}#{ext}" }}"
|
27
|
+
|
28
|
+
raise "#{path} not found" unless File.exist? path
|
29
|
+
|
30
|
+
File.write(t.name, <<~EMBEDDED_RB)
|
31
|
+
# frozen_string_literal: true
|
32
|
+
|
33
|
+
module Sass
|
34
|
+
class Embedded
|
35
|
+
class Compiler
|
36
|
+
PATH = File.absolute_path('#{path}', __dir__)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
EMBEDDED_RB
|
41
|
+
end
|
42
|
+
|
43
|
+
file 'embedded_sass.proto' => %w[embedded.rb] do |t|
|
28
44
|
fetch(ENV.fetch('SASS_EMBEDDED_PROTOCOL') { Configuration.default_sass_embedded_protocol }, t.name)
|
29
45
|
end
|
30
46
|
|
31
47
|
rule '_pb.rb' => %w[.proto protoc.exe] do |t|
|
32
|
-
sh './protoc.exe', '--ruby_out=.', t.source
|
48
|
+
sh './protoc.exe', '--proto_path=.', '--ruby_out=.', t.source
|
33
49
|
end
|
34
50
|
|
35
51
|
# This is a FileUtils extension that defines several additional commands to be
|
@@ -52,6 +68,8 @@ module FileUtils
|
|
52
68
|
end
|
53
69
|
|
54
70
|
def fetch(uri_or_path, dest = nil)
|
71
|
+
require 'open-uri'
|
72
|
+
|
55
73
|
begin
|
56
74
|
uri = URI.parse(uri_or_path)
|
57
75
|
path = URI::DEFAULT_PARSER.unescape(uri.path)
|
@@ -83,7 +101,7 @@ module FileUtils
|
|
83
101
|
|
84
102
|
dest
|
85
103
|
rescue StandardError
|
86
|
-
raise "Failed to fetch #{uri_or_path}"
|
104
|
+
raise IOError, "Failed to fetch #{uri_or_path}"
|
87
105
|
end
|
88
106
|
end
|
89
107
|
|
@@ -108,9 +126,13 @@ module Configuration
|
|
108
126
|
'i386'
|
109
127
|
when /arm64|aarch64/
|
110
128
|
'aarch64'
|
111
|
-
when
|
129
|
+
when /arm/
|
112
130
|
# Ruby before 3.0 reports "arm" instead of "arm64" as host_cpu on darwin
|
113
131
|
OS == 'darwin' ? 'aarch64' : 'arm'
|
132
|
+
when /ppc64le|powerpc64le/
|
133
|
+
'powerpc64le'
|
134
|
+
when /s390x/
|
135
|
+
's390x'
|
114
136
|
else
|
115
137
|
RbConfig::CONFIG['host_cpu']
|
116
138
|
end
|
@@ -118,95 +140,93 @@ module Configuration
|
|
118
140
|
|
119
141
|
private_constant :Platform
|
120
142
|
|
121
|
-
|
122
|
-
|
123
|
-
|
143
|
+
module_function
|
144
|
+
|
145
|
+
def default_sass_embedded
|
146
|
+
require 'json'
|
147
|
+
|
148
|
+
repo = 'https://github.com/sass/dart-sass-embedded'
|
149
|
+
|
150
|
+
spec = JSON.parse(File.read(File.absolute_path('package.json', __dir__)))
|
124
151
|
|
125
|
-
|
152
|
+
tag_name = spec['dependencies']['sass-embedded']
|
126
153
|
|
127
|
-
|
154
|
+
message = "sass_embedded for #{Platform::OS}/#{Platform::ARCH} not available at #{repo}/releases/tag/#{tag_name}"
|
128
155
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
156
|
+
os = case Platform::OS
|
157
|
+
when 'darwin'
|
158
|
+
'macos'
|
159
|
+
when 'linux'
|
160
|
+
'linux'
|
161
|
+
when 'windows'
|
162
|
+
'windows'
|
163
|
+
else
|
164
|
+
raise NotImplementedError, message
|
165
|
+
end
|
166
|
+
|
167
|
+
arch = case Platform::ARCH
|
168
|
+
when 'i386'
|
169
|
+
'ia32'
|
170
|
+
when 'x86_64'
|
171
|
+
'x64'
|
172
|
+
when 'aarch64'
|
173
|
+
Platform::OS == 'darwin' ? 'x64' : 'arm64'
|
136
174
|
else
|
137
|
-
raise
|
175
|
+
raise NotImplementedError, message
|
138
176
|
end
|
139
177
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
'ia32'
|
145
|
-
when 'aarch64'
|
146
|
-
Platform::OS == 'darwin' ? 'x64' : 'arm64'
|
147
|
-
else
|
148
|
-
raise release_asset_not_available_error(repo, tag_name)
|
149
|
-
end
|
150
|
-
|
151
|
-
ext = case os
|
152
|
-
when 'windows'
|
153
|
-
'zip'
|
154
|
-
else
|
155
|
-
'tar.gz'
|
156
|
-
end
|
157
|
-
|
158
|
-
"https://github.com/#{repo}/releases/download/#{tag_name}/sass_embedded-#{tag_name}-#{os}-#{arch}.#{ext}"
|
159
|
-
end
|
178
|
+
ext = Gem.win_platform? ? 'zip' : 'tar.gz'
|
179
|
+
|
180
|
+
"#{repo}/releases/download/#{tag_name}/sass_embedded-#{tag_name}-#{os}-#{arch}.#{ext}"
|
181
|
+
end
|
160
182
|
|
161
|
-
|
162
|
-
|
183
|
+
def default_protoc
|
184
|
+
repo = 'https://repo.maven.apache.org/maven2/com/google/protobuf/protoc'
|
163
185
|
|
164
|
-
|
186
|
+
version = Gem::Dependency.new('google-protobuf').to_spec.version
|
165
187
|
|
166
|
-
|
188
|
+
message = "protoc for #{Platform::OS}/#{Platform::ARCH} not available at #{repo}/#{version}"
|
167
189
|
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
190
|
+
os = case Platform::OS
|
191
|
+
when 'darwin'
|
192
|
+
'osx'
|
193
|
+
when 'linux'
|
194
|
+
'linux'
|
195
|
+
when 'windows'
|
196
|
+
'windows'
|
197
|
+
else
|
198
|
+
raise NotImplementedError, message
|
199
|
+
end
|
200
|
+
|
201
|
+
arch = case Platform::ARCH
|
202
|
+
when 'i386'
|
203
|
+
'x86_32'
|
204
|
+
when 'x86_64'
|
205
|
+
'x86_64'
|
206
|
+
when 'aarch64'
|
207
|
+
'aarch_64'
|
208
|
+
when 'powerpc64le'
|
209
|
+
'ppcle_64'
|
210
|
+
when 's390x'
|
211
|
+
's390_64'
|
175
212
|
else
|
176
|
-
raise
|
213
|
+
raise NotImplementedError, message
|
177
214
|
end
|
178
215
|
|
179
|
-
|
180
|
-
|
181
|
-
'x86_64'
|
182
|
-
when 'i386'
|
183
|
-
'x86_32'
|
184
|
-
when 'aarch64'
|
185
|
-
'aarch_64'
|
186
|
-
else
|
187
|
-
raise release_asset_not_available_error(repo, tag_name)
|
188
|
-
end
|
189
|
-
|
190
|
-
"https://repo.maven.apache.org/maven2/com/google/protobuf/protoc/#{version}/protoc-#{version}-#{os}-#{arch}.exe"
|
191
|
-
end
|
216
|
+
"#{repo}/#{version}/protoc-#{version}-#{os}-#{arch}.exe"
|
217
|
+
end
|
192
218
|
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
raise stderr unless status.success?
|
219
|
+
def default_sass_embedded_protocol
|
220
|
+
require 'json'
|
221
|
+
require 'open3'
|
222
|
+
require_relative 'embedded'
|
198
223
|
|
199
|
-
|
200
|
-
"https://github.com/sass/embedded-protocol/raw/#{tag_name}/embedded_sass.proto"
|
201
|
-
end
|
224
|
+
stdout, stderr, status = Open3.capture3(Sass::Embedded::Compiler::PATH, '--version')
|
202
225
|
|
203
|
-
|
226
|
+
raise stderr unless status.success?
|
204
227
|
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
"not available at https://github.com/#{repo}/releases/tag/#{tag_name}"
|
209
|
-
)
|
210
|
-
end
|
228
|
+
tag_name = JSON.parse(stdout)['protocolVersion']
|
229
|
+
|
230
|
+
"https://github.com/sass/embedded-protocol/raw/#{tag_name}/embedded_sass.proto"
|
211
231
|
end
|
212
232
|
end
|
@@ -8,10 +8,6 @@ module Sass
|
|
8
8
|
#
|
9
9
|
# It runs the `dart-sass-embedded` process.
|
10
10
|
class Compiler
|
11
|
-
PATH = File.absolute_path(
|
12
|
-
"../../../ext/sass/sass_embedded/dart-sass-embedded#{Gem.win_platform? ? '.bat' : ''}", __dir__
|
13
|
-
)
|
14
|
-
|
15
11
|
def initialize
|
16
12
|
@stdin, @stdout, @stderr, @wait_thread = Open3.popen3(PATH)
|
17
13
|
@stdin.binmode
|
data/lib/sass/embedded.rb
CHANGED
@@ -1,5 +1,39 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative '../../ext/sass/embedded'
|
4
|
+
require_relative '../../ext/sass/embedded_sass_pb'
|
5
|
+
require_relative 'compile_error'
|
6
|
+
require_relative 'compile_result'
|
7
|
+
require_relative 'embedded/async'
|
8
|
+
require_relative 'embedded/channel'
|
9
|
+
require_relative 'embedded/compiler'
|
10
|
+
require_relative 'embedded/dispatcher'
|
11
|
+
require_relative 'embedded/host'
|
12
|
+
require_relative 'embedded/host/function_registry'
|
13
|
+
require_relative 'embedded/host/importer_registry'
|
14
|
+
require_relative 'embedded/host/logger_registry'
|
15
|
+
require_relative 'embedded/host/value_protofier'
|
16
|
+
require_relative 'embedded/protofier'
|
17
|
+
require_relative 'embedded/structifier'
|
18
|
+
require_relative 'embedded/varint'
|
19
|
+
require_relative 'embedded/version'
|
20
|
+
require_relative 'logger'
|
21
|
+
require_relative 'logger/source_location'
|
22
|
+
require_relative 'logger/source_span'
|
23
|
+
require_relative 'script_error'
|
24
|
+
require_relative 'value'
|
25
|
+
require_relative 'value/list'
|
26
|
+
require_relative 'value/argument_list'
|
27
|
+
require_relative 'value/boolean'
|
28
|
+
require_relative 'value/color'
|
29
|
+
require_relative 'value/function'
|
30
|
+
require_relative 'value/fuzzy_math'
|
31
|
+
require_relative 'value/map'
|
32
|
+
require_relative 'value/null'
|
33
|
+
require_relative 'value/number'
|
34
|
+
require_relative 'value/number/unit'
|
35
|
+
require_relative 'value/string'
|
36
|
+
|
3
37
|
module Sass
|
4
38
|
# The {Embedded} host for using dart-sass-embedded. Each instance creates
|
5
39
|
# its own communication {Channel} with a dedicated compiler process.
|
data/lib/sass.rb
CHANGED
@@ -1,38 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative 'sass/compile_error'
|
4
|
-
require_relative 'sass/compile_result'
|
5
3
|
require_relative 'sass/embedded'
|
6
|
-
require_relative 'sass/embedded/async'
|
7
|
-
require_relative 'sass/embedded/channel'
|
8
|
-
require_relative 'sass/embedded/compiler'
|
9
|
-
require_relative 'sass/embedded/dispatcher'
|
10
|
-
require_relative 'sass/embedded/host'
|
11
|
-
require_relative 'sass/embedded/host/function_registry'
|
12
|
-
require_relative 'sass/embedded/host/importer_registry'
|
13
|
-
require_relative 'sass/embedded/host/logger_registry'
|
14
|
-
require_relative 'sass/embedded/host/value_protofier'
|
15
|
-
require_relative 'sass/embedded/protofier'
|
16
|
-
require_relative 'sass/embedded/structifier'
|
17
|
-
require_relative 'sass/embedded/varint'
|
18
|
-
require_relative 'sass/embedded/version'
|
19
|
-
require_relative 'sass/embedded_protocol'
|
20
|
-
require_relative 'sass/logger'
|
21
|
-
require_relative 'sass/logger/source_location'
|
22
|
-
require_relative 'sass/logger/source_span'
|
23
|
-
require_relative 'sass/script_error'
|
24
|
-
require_relative 'sass/value'
|
25
|
-
require_relative 'sass/value/list'
|
26
|
-
require_relative 'sass/value/argument_list'
|
27
|
-
require_relative 'sass/value/boolean'
|
28
|
-
require_relative 'sass/value/color'
|
29
|
-
require_relative 'sass/value/function'
|
30
|
-
require_relative 'sass/value/fuzzy_math'
|
31
|
-
require_relative 'sass/value/map'
|
32
|
-
require_relative 'sass/value/null'
|
33
|
-
require_relative 'sass/value/number'
|
34
|
-
require_relative 'sass/value/number/unit'
|
35
|
-
require_relative 'sass/value/string'
|
36
4
|
|
37
5
|
# The Sass module.
|
38
6
|
#
|
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: 1.0.
|
4
|
+
version: 1.0.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- なつき
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-03-
|
11
|
+
date: 2022-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-protobuf
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
61
|
+
version: 1.26.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.
|
68
|
+
version: 1.26.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rubocop-performance
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,7 +140,6 @@ files:
|
|
140
140
|
- lib/sass/embedded/structifier.rb
|
141
141
|
- lib/sass/embedded/varint.rb
|
142
142
|
- lib/sass/embedded/version.rb
|
143
|
-
- lib/sass/embedded_protocol.rb
|
144
143
|
- lib/sass/logger.rb
|
145
144
|
- lib/sass/logger/source_location.rb
|
146
145
|
- lib/sass/logger/source_span.rb
|
@@ -161,8 +160,8 @@ homepage: https://github.com/ntkme/sass-embedded-host-ruby
|
|
161
160
|
licenses:
|
162
161
|
- MIT
|
163
162
|
metadata:
|
164
|
-
documentation_uri: https://www.rubydoc.info/gems/sass-embedded/1.0.
|
165
|
-
source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v1.0.
|
163
|
+
documentation_uri: https://www.rubydoc.info/gems/sass-embedded/1.0.18
|
164
|
+
source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v1.0.18
|
166
165
|
funding_uri: https://github.com/sponsors/ntkme
|
167
166
|
post_install_message:
|
168
167
|
rdoc_options: []
|