sass-embedded 0.7.11 → 0.7.12

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: 9f134ae1ed21b1641b3c781ed7dc7c901c059ce3a8c9ac7038f4ee5f2ae9d313
4
- data.tar.gz: 3c4758ba9de6440b17acca78d23d9b60ffd7b6683462168bd44f1aff0f466ded
3
+ metadata.gz: af7015aac4279ef9b4ea9a4cca2ca236e1722c70db19e4c21a35c9df64d5667e
4
+ data.tar.gz: 8dcf794cff743d2e5f24b7bcd817d7bcef2867549fe0eda94634966a96e8e8c4
5
5
  SHA512:
6
- metadata.gz: cbe0c28c51e406f51262ca10bffe6453caa73badc17cbfa61938030bbf94c9a1d9747dacde5471a28b9403409082da526815b5c23f37d0ade1844fd06cfd3ad2
7
- data.tar.gz: d57f31a01741d59aa49bbf74be30d41f0da85f26b9d555e8a60695f9490a74e5043e9c7e6e148e6bf9d7fe5a740ea7e9cd34725f52ec68d46998b9a9a0b3cf8b
6
+ metadata.gz: 76a76058b210b7ae057ed71dd25f12625a04396c84c447dd8075ca4ff6ca4d52df009243cbd110009902fa727489e79bd20b1798670222cbe3c312f5ade5aa7d
7
+ data.tar.gz: f5d40d128f9c9fbaee17728c9092b6b6c86f1908f474a94e6b43918cb2db389154fa246d4b2b9ee083e916d62ba19f9aec767e35cd8d7c39c25462e90a3f9d5c
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sass
4
+ module Dependencies
5
+ REQUIREMENTS = {
6
+ 'protocolbuffers/protobuf' => '~> 3.17',
7
+ 'sass/embedded-protocol' => '~> 1.0.0-beta.12',
8
+ 'sass/dart-sass-embedded' => '~> 1.0.0-beta.9'
9
+ }.freeze
10
+ end
11
+ end
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 latest release of each
14
- # dependency from GitHub releases.
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) { latest_protoc }
27
- get_with_config('sass-embedded', true) { latest_sass_embedded }
28
- get_with_config('sass-embedded-protocol', true) { latest_sass_embedded_protocol }
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
@@ -65,31 +66,34 @@ module Sass
65
66
  raise "Failed to get: #{uri}"
66
67
  end
67
68
 
68
- def latest_release(repo, prerelease: false, tag: false)
69
- if prerelease || tag
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
73
+ URI.parse("https://github.com/#{repo}/releases/latest").open do |file|
74
+ File.basename file.base_uri.to_s
75
+ end
76
+ else
70
77
  headers = {}
71
78
  headers['Authorization'] = "token #{ENV['GITHUB_TOKEN']}" if ENV['GITHUB_TOKEN']
72
- if tag
73
- URI.parse("https://api.github.com/repos/#{repo}/tags").open(headers) do |file|
74
- JSON.parse(file.read)[0]['name']
79
+ if gh_release
80
+ URI.parse("https://api.github.com/repos/#{repo}/releases?per_page=100").open(headers) do |file|
81
+ JSON.parse(file.read).map { |release| release['tag_name'] }
75
82
  end
76
83
  else
77
- URI.parse("https://api.github.com/repos/#{repo}/releases").open(headers) do |file|
78
- JSON.parse(file.read)[0]['tag_name']
84
+ URI.parse("https://api.github.com/repos/#{repo}/tags?per_page=100").open(headers) do |file|
85
+ JSON.parse(file.read).map { |tag| tag['name'] }
79
86
  end
80
87
  end
81
- else
82
- URI.parse("https://github.com/#{repo}/releases/latest").open do |file|
83
- File.basename file.base_uri.to_s
84
- end
88
+ .find { |version| Gem::Version.correct?(version) && requirements.satisfied_by?(Gem::Version.new(version)) }
89
+ &.to_s
85
90
  end
86
91
  end
87
92
 
88
- def latest_sass_embedded
93
+ def default_sass_embedded
89
94
  repo = 'sass/dart-sass-embedded'
90
95
 
91
- # TODO: don't use prerelease once a release is available
92
- tag_name = latest_release repo, prerelease: true
96
+ tag_name = resolve_tag_name(repo, Sass::Dependencies::REQUIREMENTS[repo])
93
97
 
94
98
  os = case Platform::OS
95
99
  when 'darwin'
@@ -125,10 +129,12 @@ module Sass
125
129
  "https://github.com/#{repo}/releases/download/#{tag_name}/sass_embedded-#{tag_name}-#{os}-#{arch}.#{ext}"
126
130
  end
127
131
 
128
- def latest_protoc
132
+ def default_protoc
129
133
  repo = 'protocolbuffers/protobuf'
130
134
 
131
- tag_name = latest_release repo
135
+ spec = Gem::Dependency.new('google-protobuf', Sass::Dependencies::REQUIREMENTS[repo]).to_spec
136
+
137
+ tag_name = "v#{spec.version}"
132
138
 
133
139
  os = case Platform::OS
134
140
  when 'darwin'
@@ -172,11 +178,10 @@ module Sass
172
178
  "https://github.com/#{repo}/releases/download/#{tag_name}/protoc-#{tag_name[1..]}-#{os_arch}.#{ext}"
173
179
  end
174
180
 
175
- def latest_sass_embedded_protocol
181
+ def default_sass_embedded_protocol
176
182
  repo = 'sass/embedded-protocol'
177
183
 
178
- # TODO: don't use tag once a release is available
179
- tag_name = latest_release repo, tag: true
184
+ tag_name = resolve_tag_name(repo, Sass::Dependencies::REQUIREMENTS[repo], gh_release: false)
180
185
 
181
186
  "https://raw.githubusercontent.com/#{repo}/#{tag_name}/embedded_sass.proto"
182
187
  end
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.11'
4
+ VERSION = '0.7.12'
5
5
  end
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.11
4
+ version: 0.7.12
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-06 00:00:00.000000000 Z
11
+ date: 2021-08-20 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.0
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.0
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.11
169
- post_install_message:
169
+ source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.7.12
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.22
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: []