sass-embedded 0.7.28 → 0.8.0

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: 207fb46d3fc8d7e4fab04175f2703c72e02bfa95d36c540a59009d868ac23750
4
- data.tar.gz: b3da3862145c65095de4d7a6dabbce534a42d7fe45d038f6add1ffe3f2cee54a
3
+ metadata.gz: 6e1fbbdbc66fbfb15634d950059400fe7f9f35992595f789ebf3167e987fd573
4
+ data.tar.gz: e9064bae379c032b002c289cb868d2ebca91923e6acef439ad48e3ab9f2c72b2
5
5
  SHA512:
6
- metadata.gz: 1c85b0bbaae870e2869d494ac32fdf395cdb190cd5d19629d41bb0c2cc5186de40a4c3b4f6a66dc1fe4dcb5d1b13837f88e22b3c96836645d883d1e9db152f20
7
- data.tar.gz: c23a80f42bd9f7a02f6627d73bb5e7813b6489749f6e3cc09f8ebba6ea6f1e9c1f00fef44c504064a92e494e690fdcaacef4162903b915f2414a3fbb11237eee
6
+ metadata.gz: 5e4fddfa90b8e26fd1b810e959f8b7c62b2af1a277e9e183cef0e1757516a1f43aa0bd2fb192db0dba29bdd34f0acbc8d0f9295ba3e6b6a23e0e92f6770bc6a7
7
+ data.tar.gz: fc3ee301812358653a249ea5631b3e2c59bdcd415f2a8c4431509e38f0a255b57f0cbc2d1a3bfc8a5027293ba1b55de41b343fe0a5aac77cc886e53b903e0098
data/ext/sass/Makefile CHANGED
@@ -44,7 +44,7 @@ else
44
44
  unzip -od $@ $<
45
45
  endif
46
46
 
47
- embedded_sass.proto:
47
+ embedded_sass.proto: sass_embedded
48
48
  $(EXTCONF) --with-sass-embedded-protocol
49
49
 
50
50
  %_pb.rb: %.proto protoc
data/ext/sass/extconf.rb CHANGED
@@ -5,8 +5,8 @@ require 'mkmf'
5
5
  require 'json'
6
6
  require 'open-uri'
7
7
  require 'fileutils'
8
- require_relative './dependencies'
9
8
  require_relative '../../lib/sass/platform'
9
+ require_relative '../../lib/sass/compiler'
10
10
 
11
11
  module Sass
12
12
  # The dependency downloader. This downloads all the dependencies during gem
@@ -75,36 +75,53 @@ module Sass
75
75
  def resolve_tag_name(repo, *requirements, gh_release: true)
76
76
  requirements = Gem::Requirement.create(*requirements)
77
77
 
78
- if requirements == Gem::Requirement.default && gh_release
79
- URI.parse("https://github.com/#{repo}/releases/latest").open do |file|
80
- File.basename file.base_uri.to_s
81
- end
82
- else
83
- begin
84
- headers = {}
85
- headers['Authorization'] = "token #{ENV['GITHUB_TOKEN']}" if ENV['GITHUB_TOKEN']
86
- if gh_release
87
- URI.parse("https://api.github.com/repos/#{repo}/releases?per_page=100").open(headers) do |file|
88
- JSON.parse(file.read).map { |release| release['tag_name'] }
89
- end
90
- else
91
- URI.parse("https://api.github.com/repos/#{repo}/tags?per_page=100").open(headers) do |file|
92
- JSON.parse(file.read).map { |tag| tag['name'] }
93
- end
78
+ satisfied = lambda { |version|
79
+ Gem::Version.correct?(version) && requirements.satisfied_by?(Gem::Version.new(version))
80
+ }
81
+
82
+ headers = {}
83
+ headers['Authorization'] = "token #{ENV['GITHUB_TOKEN']}" if ENV['GITHUB_TOKEN']
84
+
85
+ begin
86
+ if gh_release
87
+ releases_uri = "https://github.com/#{repo}/releases"
88
+ uri = "#{releases_uri}/latest"
89
+ tag_name = URI.parse(uri).open do |file|
90
+ return nil if file.base_uri == releases_uri
91
+
92
+ latest = File.basename file.base_uri.to_s
93
+ latest if satisfied.call latest
94
94
  end
95
- rescue OpenURI::HTTPError
96
- requirements.requirements
97
- .map { |requirement| requirement.last.to_s.gsub('.pre.', '-') }
95
+
96
+ return tag_name unless tag_name.nil?
97
+
98
+ uri = "https://api.github.com/repos/#{repo}/releases?per_page=100"
99
+ tag_name = URI.parse(uri).open(headers) do |file|
100
+ JSON.parse(file.read).map { |release| release['tag_name'] }
101
+ end
102
+ .find(satisfied)&.peek
103
+ else
104
+ uri = "https://api.github.com/repos/#{repo}/tags?per_page=100"
105
+ tag_name = URI.parse(uri).open(headers) do |file|
106
+ JSON.parse(file.read).map { |tag| tag['name'] }
107
+ end
108
+ .find(satisfied)&.peek
98
109
  end
99
- .find { |version| Gem::Version.correct?(version) && requirements.satisfied_by?(Gem::Version.new(version)) }
100
- &.to_s
110
+
111
+ return tag_name unless tag_name.nil?
112
+ rescue OpenURI::HTTPError => e
113
+ warn "WARNING: Error fetching #{uri}: #{e}"
101
114
  end
115
+
116
+ requirements.requirements
117
+ .map { |requirement| requirement.last.to_s.gsub('.pre.', '-') }
118
+ .find(satisfied)&.peek
102
119
  end
103
120
 
104
121
  def default_sass_embedded
105
122
  repo = 'sass/dart-sass-embedded'
106
123
 
107
- tag_name = resolve_tag_name(repo, Sass::Dependencies::REQUIREMENTS[repo])
124
+ tag_name = resolve_tag_name(repo, Compiler::REQUIREMENTS)
108
125
 
109
126
  os = case Platform::OS
110
127
  when 'darwin'
@@ -143,7 +160,7 @@ module Sass
143
160
  def default_protoc
144
161
  repo = 'protocolbuffers/protobuf'
145
162
 
146
- spec = Gem::Dependency.new('google-protobuf', Sass::Dependencies::REQUIREMENTS[repo]).to_spec
163
+ spec = Gem::Dependency.new('google-protobuf').to_spec
147
164
 
148
165
  tag_name = "v#{spec.version}"
149
166
 
@@ -192,7 +209,9 @@ module Sass
192
209
  def default_sass_embedded_protocol
193
210
  repo = 'sass/embedded-protocol'
194
211
 
195
- tag_name = resolve_tag_name(repo, Sass::Dependencies::REQUIREMENTS[repo], gh_release: false)
212
+ tag_name = IO.popen([Compiler::DART_SASS_EMBEDDED, '--version']) do |file|
213
+ JSON.parse(file.read)['protocolVersion']
214
+ end
196
215
 
197
216
  "https://raw.githubusercontent.com/#{repo}/#{tag_name}/embedded_sass.proto"
198
217
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sass
4
+ module Compiler
5
+ DART_SASS_EMBEDDED = File.absolute_path(
6
+ "../../ext/sass/sass_embedded/dart-sass-embedded#{Platform::OS == 'windows' ? '.bat' : ''}", __dir__
7
+ )
8
+
9
+ PROTOCOL_ERROR_ID = 4_294_967_295
10
+
11
+ REQUIREMENTS = '~> 1.0.0-beta.11'
12
+ end
13
+ end
data/lib/sass/embedded.rb CHANGED
@@ -243,7 +243,7 @@ module Sass
243
243
  def next_id
244
244
  @id_semaphore.synchronize do
245
245
  @id += 1
246
- @id = 0 if @id == Transport::PROTOCOL_ERROR_ID
246
+ @id = 0 if @id == Compiler::PROTOCOL_ERROR_ID
247
247
  @id
248
248
  end
249
249
  end
@@ -11,12 +11,6 @@ module Sass
11
11
  class Transport
12
12
  include Observable
13
13
 
14
- DART_SASS_EMBEDDED = File.absolute_path(
15
- "../../ext/sass/sass_embedded/dart-sass-embedded#{Platform::OS == 'windows' ? '.bat' : ''}", __dir__
16
- )
17
-
18
- PROTOCOL_ERROR_ID = 4_294_967_295
19
-
20
14
  ONEOF_MESSAGE = EmbeddedProtocol::InboundMessage
21
15
  .descriptor
22
16
  .lookup_oneof('message')
@@ -29,7 +23,7 @@ module Sass
29
23
  def initialize
30
24
  @observerable_mutex = Mutex.new
31
25
  @stdin_mutex = Mutex.new
32
- @stdin, @stdout, @stderr, @wait_thread = Open3.popen3(DART_SASS_EMBEDDED)
26
+ @stdin, @stdout, @stderr, @wait_thread = Open3.popen3(Compiler::DART_SASS_EMBEDDED)
33
27
 
34
28
  [@stdin, @stdout].each(&:binmode)
35
29
 
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.28'
4
+ VERSION = '0.8.0'
5
5
  end
data/lib/sass.rb CHANGED
@@ -62,6 +62,7 @@ end
62
62
 
63
63
  require_relative 'sass/version'
64
64
  require_relative 'sass/platform'
65
+ require_relative 'sass/compiler'
65
66
  require_relative 'sass/util'
66
67
  require_relative 'sass/struct'
67
68
  require_relative 'sass/result'
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.28
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - なつき
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-22 00:00:00.000000000 Z
11
+ date: 2021-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -120,11 +120,11 @@ files:
120
120
  - LICENSE
121
121
  - README.md
122
122
  - ext/sass/Makefile
123
- - ext/sass/dependencies.rb
124
123
  - ext/sass/extconf.rb
125
124
  - ext/sass/unzip.vbs
126
125
  - lib/sass.rb
127
126
  - lib/sass/compile.rb
127
+ - lib/sass/compiler.rb
128
128
  - lib/sass/embedded.rb
129
129
  - lib/sass/error.rb
130
130
  - lib/sass/info.rb
@@ -139,8 +139,8 @@ homepage: https://github.com/ntkme/sass-embedded-host-ruby
139
139
  licenses:
140
140
  - MIT
141
141
  metadata:
142
- documentation_uri: https://www.rubydoc.info/gems/sass-embedded/0.7.28
143
- source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.7.28
142
+ documentation_uri: https://www.rubydoc.info/gems/sass-embedded/0.8.0
143
+ source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.8.0
144
144
  funding_uri: https://github.com/sponsors/ntkme
145
145
  post_install_message:
146
146
  rdoc_options: []
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Sass
4
- module Dependencies
5
- REQUIREMENTS = {
6
- 'protocolbuffers/protobuf' => '~> 3.18.0',
7
- 'sass/embedded-protocol' => '~> 1.0.0-beta.12',
8
- 'sass/dart-sass-embedded' => '~> 1.0.0-beta.11'
9
- }.freeze
10
- end
11
- end