sass-embedded 0.7.9 → 0.7.13

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: af2d3d643f4731906f3b71e6340fb733dafdb85a09892c3fbf0ddac377835fcc
4
- data.tar.gz: a7827876ce4b50f3f5165aad572a1d1512c0161ac121efe234a0607495aec822
3
+ metadata.gz: 103336d18b4ff3eba9898df0ee3dc4c28b7f3e9ab81d8548b1665f1636a518ed
4
+ data.tar.gz: 9cba67666361efb314c98798a3de2fc9370e5a6eb0c42b3fdbab96fc4f64a566
5
5
  SHA512:
6
- metadata.gz: 6a2f02e3e0506330c5777d0b1bd8c13ef380e7329d3ba8d393d8e3ac7550e208eb27346a333094a9cc5b7ae16b8a031c2285727abff0f5b544f35257fc32451a
7
- data.tar.gz: 5b87374beb7554219fccf1cdc9e692f724f595ec39ce710ae2153bd39d0a54fb1759763fabee651b708843081563c21e1fdf42873ccbd217f175cd2d8c75fea3
6
+ metadata.gz: e3d2307ce9fdaaf8635c8803e24a85aa82a3a1ee8b72e5284fe282adc28cb20ee69f9f7a3612ecc5a4e09423034a3d0dc680c47d7eebe489f806da916d85532e
7
+ data.tar.gz: c105838b5b082e657acc917600c0b7fb664e53541800ebda1f4fcd1b44be2f16c3849d06b34c1ba19e82c029144f264d22dacdb678d928cee3a210ba8d90b89d
@@ -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
@@ -52,6 +53,7 @@ module Sass
52
53
  if uri.is_a?(URI::File) || uri.instance_of?(URI::Generic)
53
54
  FileUtils.copy_file uri.path, path
54
55
  elsif uri.respond_to? :open
56
+ puts "curl -fsSLo #{path} -- #{uri}"
55
57
  uri.open do |source|
56
58
  File.open(path, 'wb') do |destination|
57
59
  destination.write source.read
@@ -61,30 +63,44 @@ module Sass
61
63
  raise
62
64
  end
63
65
  rescue StandardError
64
- raise "Failed to get: #{uri}"
66
+ raise "Failed to get: #{uri_s}"
65
67
  end
66
68
 
67
- def latest_release(repo, prerelease: false)
68
- if prerelease
69
- headers = {}
70
- headers['Authorization'] = "token #{ENV['GITHUB_TOKEN']}" if ENV['GITHUB_TOKEN']
71
- URI.parse("https://api.github.com/repos/#{repo}/releases").open(headers) do |file|
72
- JSON.parse(file.read)[0]['tag_name']
73
- end
74
- 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
75
73
  URI.parse("https://github.com/#{repo}/releases/latest").open do |file|
76
74
  File.basename file.base_uri.to_s
77
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
78
95
  end
79
96
  end
80
97
 
81
- def latest_sass_embedded
98
+ def default_sass_embedded
82
99
  repo = 'sass/dart-sass-embedded'
83
100
 
84
- # TODO, don't use prerelease once a release is available
85
- tag_name = latest_release repo, prerelease: true
101
+ tag_name = resolve_tag_name(repo, Sass::Dependencies::REQUIREMENTS[repo])
86
102
 
87
- os = case Sass::Platform::OS
103
+ os = case Platform::OS
88
104
  when 'darwin'
89
105
  'macos'
90
106
  when 'linux'
@@ -92,16 +108,20 @@ module Sass
92
108
  when 'windows'
93
109
  'windows'
94
110
  else
95
- raise "Unsupported OS: #{Sass::Platform::OS}"
111
+ raise "Unsupported OS: #{Platform::OS}"
96
112
  end
97
113
 
98
- arch = case Sass::Platform::ARCH
114
+ arch = case Platform::ARCH
99
115
  when 'x86_64'
100
116
  'x64'
101
117
  when 'i386'
102
118
  'ia32'
119
+ when 'aarch64'
120
+ raise "Unsupported Arch: #{Platform::ARCH}" unless Platform::OS == 'darwin'
121
+
122
+ 'x64'
103
123
  else
104
- raise "Unsupported Arch: #{Sass::Platform::ARCH}"
124
+ raise "Unsupported Arch: #{Platform::ARCH}"
105
125
  end
106
126
 
107
127
  ext = case os
@@ -114,12 +134,14 @@ module Sass
114
134
  "https://github.com/#{repo}/releases/download/#{tag_name}/sass_embedded-#{tag_name}-#{os}-#{arch}.#{ext}"
115
135
  end
116
136
 
117
- def latest_protoc
137
+ def default_protoc
118
138
  repo = 'protocolbuffers/protobuf'
119
139
 
120
- tag_name = latest_release repo
140
+ spec = Gem::Dependency.new('google-protobuf', Sass::Dependencies::REQUIREMENTS[repo]).to_spec
141
+
142
+ tag_name = "v#{spec.version}"
121
143
 
122
- os = case Sass::Platform::OS
144
+ os = case Platform::OS
123
145
  when 'darwin'
124
146
  'osx'
125
147
  when 'linux'
@@ -127,12 +149,16 @@ module Sass
127
149
  when 'windows'
128
150
  'win'
129
151
  else
130
- raise "Unsupported OS: #{Sass::Platform::OS}"
152
+ raise "Unsupported OS: #{Platform::OS}"
131
153
  end
132
154
 
133
- arch = case Sass::Platform::ARCH
155
+ arch = case Platform::ARCH
134
156
  when 'aarch64'
135
- 'aarch_64'
157
+ if Platform::OS == 'darwin'
158
+ 'x86_64'
159
+ else
160
+ 'aarch_64'
161
+ end
136
162
  when 'sparcv9'
137
163
  's390'
138
164
  when 'i386'
@@ -142,7 +168,7 @@ module Sass
142
168
  when 'powerpc64'
143
169
  'ppcle_64'
144
170
  else
145
- raise "Unsupported Arch: #{Sass::Platform::ARCH}"
171
+ raise "Unsupported Arch: #{Platform::ARCH}"
146
172
  end
147
173
 
148
174
  os_arch = case os
@@ -157,12 +183,10 @@ module Sass
157
183
  "https://github.com/#{repo}/releases/download/#{tag_name}/protoc-#{tag_name[1..]}-#{os_arch}.#{ext}"
158
184
  end
159
185
 
160
- def latest_sass_embedded_protocol
186
+ def default_sass_embedded_protocol
161
187
  repo = 'sass/embedded-protocol'
162
188
 
163
- # TODO: use latest release once available
164
- # tag_name = latest_release repo
165
- tag_name = 'HEAD'
189
+ tag_name = resolve_tag_name(repo, Sass::Dependencies::REQUIREMENTS[repo], gh_release: false)
166
190
 
167
191
  "https://raw.githubusercontent.com/#{repo}/#{tag_name}/embedded_sass.proto"
168
192
  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.9'
4
+ VERSION = '0.7.13'
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.9
4
+ version: 0.7.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - なつき
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-05 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.9
169
- post_install_message:
169
+ source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.7.13
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.15
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: []