sass-embedded 0.7.11 → 0.7.15
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/README.md +1 -0
- data/ext/dependencies.rb +11 -0
- data/ext/extconf.rb +38 -28
- data/lib/sass/compile.rb +5 -1
- data/lib/sass/transport.rb +11 -8
- data/lib/sass/version.rb +1 -1
- metadata +10 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe31a4373aa2146f0eee250178df2e35383141389699a7af4a7f4c0d672631fd
|
4
|
+
data.tar.gz: 821ce7306f41e0e037720df4bd048e248113461dcdcd7ec8c8bb99a05d72339a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1ba39e8ef36ab9b50c51eebded39ee7065fb3e51d93af224c66ef246ff76981a2eec2ea6f5572f0c1d90482c431f0a713a3e7424236bb3ed3af11aa36607cc9
|
7
|
+
data.tar.gz: 96c187418ea97fc784cdb5ade9a837aa2e5671d7bc8dd0a1c34e97f4612079d95c91dfbb0a358ebe7449a5db5a46d209183f3cc4fd0464ce9e243b62721df22f
|
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# Embedded Sass Host for Ruby
|
2
2
|
|
3
3
|
[](https://github.com/ntkme/embedded-host-ruby/actions/workflows/build.yml)
|
4
|
+
[](https://rubygems.org/gems/sass-embedded)
|
4
5
|
|
5
6
|
This is a Ruby library that implements the host side of the [Embedded Sass protocol](https://github.com/sass/sass-embedded-protocol).
|
6
7
|
|
data/ext/dependencies.rb
ADDED
data/ext/extconf.rb
CHANGED
@@ -5,13 +5,14 @@ require 'mkmf'
|
|
5
5
|
require 'json'
|
6
6
|
require 'open-uri'
|
7
7
|
require 'fileutils'
|
8
|
+
require_relative './dependencies'
|
8
9
|
require_relative '../lib/sass/platform'
|
9
10
|
|
10
11
|
module Sass
|
11
12
|
# The dependency downloader. This downloads all the dependencies during gem
|
12
13
|
# installation. The companion Makefile then unpacks all downloaded
|
13
|
-
# dependencies. By default it downloads the
|
14
|
-
#
|
14
|
+
# dependencies. By default it downloads the release of each dependency
|
15
|
+
# from GitHub releases.
|
15
16
|
#
|
16
17
|
# It is possible to specify an alternative source or version of each
|
17
18
|
# dependency. Local sources can be used for offline installation.
|
@@ -23,9 +24,9 @@ module Sass
|
|
23
24
|
# --with-sass-embedded-protocol=file:///path/to/embedded_sass.proto
|
24
25
|
class Extconf
|
25
26
|
def initialize
|
26
|
-
get_with_config('protoc', true) {
|
27
|
-
get_with_config('sass-embedded', true) {
|
28
|
-
get_with_config('sass-embedded-protocol', true) {
|
27
|
+
get_with_config('protoc', true) { default_protoc }
|
28
|
+
get_with_config('sass-embedded', true) { default_sass_embedded }
|
29
|
+
get_with_config('sass-embedded-protocol', true) { default_sass_embedded_protocol }
|
29
30
|
end
|
30
31
|
|
31
32
|
private
|
@@ -62,34 +63,42 @@ module Sass
|
|
62
63
|
raise
|
63
64
|
end
|
64
65
|
rescue StandardError
|
65
|
-
raise "Failed to get: #{
|
66
|
+
raise "Failed to get: #{uri_s}"
|
66
67
|
end
|
67
68
|
|
68
|
-
def
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
if tag
|
73
|
-
URI.parse("https://api.github.com/repos/#{repo}/tags").open(headers) do |file|
|
74
|
-
JSON.parse(file.read)[0]['name']
|
75
|
-
end
|
76
|
-
else
|
77
|
-
URI.parse("https://api.github.com/repos/#{repo}/releases").open(headers) do |file|
|
78
|
-
JSON.parse(file.read)[0]['tag_name']
|
79
|
-
end
|
80
|
-
end
|
81
|
-
else
|
69
|
+
def resolve_tag_name(repo, *requirements, gh_release: true)
|
70
|
+
requirements = Gem::Requirement.create(*requirements)
|
71
|
+
|
72
|
+
if requirements == Gem::Requirement.default && gh_release
|
82
73
|
URI.parse("https://github.com/#{repo}/releases/latest").open do |file|
|
83
74
|
File.basename file.base_uri.to_s
|
84
75
|
end
|
76
|
+
else
|
77
|
+
begin
|
78
|
+
headers = {}
|
79
|
+
headers['Authorization'] = "token #{ENV['GITHUB_TOKEN']}" if ENV['GITHUB_TOKEN']
|
80
|
+
if gh_release
|
81
|
+
URI.parse("https://api.github.com/repos/#{repo}/releases?per_page=100").open(headers) do |file|
|
82
|
+
JSON.parse(file.read).map { |release| release['tag_name'] }
|
83
|
+
end
|
84
|
+
else
|
85
|
+
URI.parse("https://api.github.com/repos/#{repo}/tags?per_page=100").open(headers) do |file|
|
86
|
+
JSON.parse(file.read).map { |tag| tag['name'] }
|
87
|
+
end
|
88
|
+
end
|
89
|
+
rescue OpenURI::HTTPError
|
90
|
+
requirements.requirements
|
91
|
+
.map { |requirement| requirement.last.to_s.gsub('.pre.', '-') }
|
92
|
+
end
|
93
|
+
.find { |version| Gem::Version.correct?(version) && requirements.satisfied_by?(Gem::Version.new(version)) }
|
94
|
+
&.to_s
|
85
95
|
end
|
86
96
|
end
|
87
97
|
|
88
|
-
def
|
98
|
+
def default_sass_embedded
|
89
99
|
repo = 'sass/dart-sass-embedded'
|
90
100
|
|
91
|
-
|
92
|
-
tag_name = latest_release repo, prerelease: true
|
101
|
+
tag_name = resolve_tag_name(repo, Sass::Dependencies::REQUIREMENTS[repo])
|
93
102
|
|
94
103
|
os = case Platform::OS
|
95
104
|
when 'darwin'
|
@@ -125,10 +134,12 @@ module Sass
|
|
125
134
|
"https://github.com/#{repo}/releases/download/#{tag_name}/sass_embedded-#{tag_name}-#{os}-#{arch}.#{ext}"
|
126
135
|
end
|
127
136
|
|
128
|
-
def
|
137
|
+
def default_protoc
|
129
138
|
repo = 'protocolbuffers/protobuf'
|
130
139
|
|
131
|
-
|
140
|
+
spec = Gem::Dependency.new('google-protobuf', Sass::Dependencies::REQUIREMENTS[repo]).to_spec
|
141
|
+
|
142
|
+
tag_name = "v#{spec.version}"
|
132
143
|
|
133
144
|
os = case Platform::OS
|
134
145
|
when 'darwin'
|
@@ -172,11 +183,10 @@ module Sass
|
|
172
183
|
"https://github.com/#{repo}/releases/download/#{tag_name}/protoc-#{tag_name[1..]}-#{os_arch}.#{ext}"
|
173
184
|
end
|
174
185
|
|
175
|
-
def
|
186
|
+
def default_sass_embedded_protocol
|
176
187
|
repo = 'sass/embedded-protocol'
|
177
188
|
|
178
|
-
|
179
|
-
tag_name = latest_release repo, tag: true
|
189
|
+
tag_name = resolve_tag_name(repo, Sass::Dependencies::REQUIREMENTS[repo], gh_release: false)
|
180
190
|
|
181
191
|
"https://raw.githubusercontent.com/#{repo}/#{tag_name}/embedded_sass.proto"
|
182
192
|
end
|
data/lib/sass/compile.rb
CHANGED
@@ -161,9 +161,13 @@ module Sass
|
|
161
161
|
end
|
162
162
|
|
163
163
|
def function_call_response(function_call_request)
|
164
|
+
# TODO: convert argument_list to **kwargs
|
164
165
|
EmbeddedProtocol::InboundMessage::FunctionCallResponse.new(
|
165
166
|
id: function_call_request.id,
|
166
|
-
success: @functions[function_call_request.name].call(*function_call_request.arguments)
|
167
|
+
success: @functions[function_call_request.name].call(*function_call_request.arguments),
|
168
|
+
accessed_argument_lists: function_call_request.arguments
|
169
|
+
.filter { |argument| argument.value == :argument_list }
|
170
|
+
.map { |argument| argument.argument_list.id }
|
167
171
|
)
|
168
172
|
rescue StandardError => e
|
169
173
|
EmbeddedProtocol::InboundMessage::FunctionCallResponse.new(
|
data/lib/sass/transport.rb
CHANGED
@@ -107,21 +107,24 @@ module Sass
|
|
107
107
|
end
|
108
108
|
|
109
109
|
def read_varint(readable)
|
110
|
-
|
110
|
+
value = bits = 0
|
111
111
|
loop do
|
112
112
|
byte = readable.readbyte
|
113
|
-
|
113
|
+
value |= (byte & 0x7f) << bits
|
114
114
|
bits += 7
|
115
|
-
break if byte
|
115
|
+
break if byte < 0x80
|
116
116
|
end
|
117
|
-
|
117
|
+
value
|
118
118
|
end
|
119
119
|
|
120
|
-
def write_varint(writeable,
|
121
|
-
|
122
|
-
|
123
|
-
|
120
|
+
def write_varint(writeable, value)
|
121
|
+
bytes = []
|
122
|
+
until value < 0x80
|
123
|
+
bytes << (0x80 | (value & 0x7f))
|
124
|
+
value >>= 7
|
124
125
|
end
|
126
|
+
bytes << value
|
127
|
+
writeable.write bytes.pack('C*')
|
125
128
|
end
|
126
129
|
end
|
127
130
|
end
|
data/lib/sass/version.rb
CHANGED
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
|
+
version: 0.7.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- なつき
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-08-
|
11
|
+
date: 2021-08-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-protobuf
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.17
|
19
|
+
version: '3.17'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.17
|
26
|
+
version: '3.17'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- LICENSE
|
149
149
|
- README.md
|
150
150
|
- ext/Makefile
|
151
|
+
- ext/dependencies.rb
|
151
152
|
- ext/extconf.rb
|
152
153
|
- lib/sass.rb
|
153
154
|
- lib/sass/compile.rb
|
@@ -165,8 +166,8 @@ homepage: https://github.com/ntkme/sass-embedded-host-ruby
|
|
165
166
|
licenses:
|
166
167
|
- MIT
|
167
168
|
metadata:
|
168
|
-
source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.7.
|
169
|
-
post_install_message:
|
169
|
+
source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.7.15
|
170
|
+
post_install_message:
|
170
171
|
rdoc_options: []
|
171
172
|
require_paths:
|
172
173
|
- lib
|
@@ -181,8 +182,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
182
|
- !ruby/object:Gem::Version
|
182
183
|
version: '0'
|
183
184
|
requirements: []
|
184
|
-
rubygems_version: 3.2.
|
185
|
-
signing_key:
|
185
|
+
rubygems_version: 3.2.26
|
186
|
+
signing_key:
|
186
187
|
specification_version: 4
|
187
188
|
summary: Use dart-sass with Ruby!
|
188
189
|
test_files: []
|