sass-embedded 0.7.28 → 0.8.0

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: 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