sass-embedded 0.7.11 → 0.7.12

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