sass-embedded 0.7.25 → 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: f7192933909624b939215bfca941b38c85a428a4e77d35afb0f72377fb92a2bf
4
- data.tar.gz: 1b4a946c026324d880232803141807f4e59ac25cd2a991c0428075951deca948
3
+ metadata.gz: 6e1fbbdbc66fbfb15634d950059400fe7f9f35992595f789ebf3167e987fd573
4
+ data.tar.gz: e9064bae379c032b002c289cb868d2ebca91923e6acef439ad48e3ab9f2c72b2
5
5
  SHA512:
6
- metadata.gz: 3bc89fea820633e29b0e5de08aa3db822403904c6868226240b4043f9c7c616ad0c230291bedc0d57aa1667cd9f653b6aee7d83e3b6f6781860bbd089b9f3b03
7
- data.tar.gz: 54c72b0355dddad675fea7673eba527d9a7568a0d5fd6527bac60667193b5ff84df9a48d92b5571b45f9013af7eed3d1b9b699fea2cc273212459cae7ffc7da6
6
+ metadata.gz: 5e4fddfa90b8e26fd1b810e959f8b7c62b2af1a277e9e183cef0e1757516a1f43aa0bd2fb192db0dba29bdd34f0acbc8d0f9295ba3e6b6a23e0e92f6770bc6a7
7
+ data.tar.gz: fc3ee301812358653a249ea5631b3e2c59bdcd415f2a8c4431509e38f0a255b57f0cbc2d1a3bfc8a5027293ba1b55de41b343fe0a5aac77cc886e53b903e0098
data/ext/sass/Makefile CHANGED
@@ -3,7 +3,7 @@ RM = powershell -c "cmd.exe /c del /f /q /s"
3
3
  else
4
4
  RM = rm -fr
5
5
  endif
6
- EXTCONF = ruby -- extconf.rb --without-sass-embedded --without-sass-embedded-protocol --without-protoc
6
+ EXTCONF = ruby -- extconf.rb
7
7
 
8
8
  .PHONY: all
9
9
  all: sass_embedded embedded_sass_pb.rb
@@ -28,7 +28,7 @@ endif
28
28
 
29
29
  ifeq ($(OS),Windows_NT)
30
30
  sass_embedded: sass_embedded-*.zip
31
- powershell -c "Get-Item $< | Expand-Archive -DestinationPath . -Force"
31
+ powershell -c "if (Get-Command Expand-Archive -ErrorAction SilentlyContinue) { Get-Item $< | Expand-Archive -DestinationPath . -Force } else { cscript.exe unzip.vbs $< . }"
32
32
  else
33
33
  sass_embedded: sass_embedded-*.tar.gz
34
34
  tar -vxzf $<
@@ -39,12 +39,12 @@ protoc-*.zip:
39
39
 
40
40
  protoc: protoc-*.zip
41
41
  ifeq ($(OS),Windows_NT)
42
- powershell -c "Get-Item $< | Expand-Archive -DestinationPath $@ -Force"
42
+ powershell -c "if (Get-Command Expand-Archive -ErrorAction SilentlyContinue) { Get-Item $< | Expand-Archive -DestinationPath $@ -Force } else { cscript.exe unzip.vbs $< $@ }"
43
43
  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
@@ -22,32 +22,37 @@ module Sass
22
22
  # --with-protoc=file:///path/to/protoc-*.zip \
23
23
  # --with-sass-embedded=file:///path/to/sass_embedded-*.(tar.gz|zip) \
24
24
  # --with-sass-embedded-protocol=file:///path/to/embedded_sass.proto
25
+ # @example
26
+ # bundle config build.sass-embedded \
27
+ # --with-protoc=file:///path/to/protoc-*.zip \
28
+ # --with-sass-embedded=file:///path/to/sass_embedded-*.(tar.gz|zip) \
29
+ # --with-sass-embedded-protocol=file:///path/to/embedded_sass.proto
25
30
  class Extconf
26
31
  def initialize
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 }
32
+ fetch_with_config('protoc', false) { default_protoc }
33
+ fetch_with_config('sass-embedded', false) { default_sass_embedded }
34
+ fetch_with_config('sass-embedded-protocol', false) { default_sass_embedded_protocol }
30
35
  end
31
36
 
32
37
  private
33
38
 
34
- def get_with_config(config, default)
39
+ def fetch_with_config(config, default)
35
40
  val = with_config(config, default)
36
41
  case val
37
42
  when true
38
43
  if block_given?
39
- get yield
44
+ fetch yield
40
45
  else
41
- get default
46
+ fetch default
42
47
  end
43
48
  when false
44
49
  nil
45
50
  else
46
- get val
51
+ fetch val
47
52
  end
48
53
  end
49
54
 
50
- def get(uri_s)
55
+ def fetch(uri_s)
51
56
  uri = URI.parse(uri_s)
52
57
  path = File.absolute_path(File.basename(uri.path), __dir__)
53
58
  if uri.is_a?(URI::File) || uri.instance_of?(URI::Generic)
@@ -63,43 +68,60 @@ module Sass
63
68
  raise
64
69
  end
65
70
  rescue StandardError
66
- warn "Failed to get: #{uri_s}"
71
+ warn "ERROR: Error fetching #{uri_s}:"
67
72
  raise
68
73
  end
69
74
 
70
75
  def resolve_tag_name(repo, *requirements, gh_release: true)
71
76
  requirements = Gem::Requirement.create(*requirements)
72
77
 
73
- if requirements == Gem::Requirement.default && gh_release
74
- URI.parse("https://github.com/#{repo}/releases/latest").open do |file|
75
- File.basename file.base_uri.to_s
76
- end
77
- else
78
- begin
79
- headers = {}
80
- headers['Authorization'] = "token #{ENV['GITHUB_TOKEN']}" if ENV['GITHUB_TOKEN']
81
- if gh_release
82
- URI.parse("https://api.github.com/repos/#{repo}/releases?per_page=100").open(headers) do |file|
83
- JSON.parse(file.read).map { |release| release['tag_name'] }
84
- end
85
- else
86
- URI.parse("https://api.github.com/repos/#{repo}/tags?per_page=100").open(headers) do |file|
87
- JSON.parse(file.read).map { |tag| tag['name'] }
88
- 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
89
94
  end
90
- rescue OpenURI::HTTPError
91
- requirements.requirements
92
- .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
93
109
  end
94
- .find { |version| Gem::Version.correct?(version) && requirements.satisfied_by?(Gem::Version.new(version)) }
95
- &.to_s
110
+
111
+ return tag_name unless tag_name.nil?
112
+ rescue OpenURI::HTTPError => e
113
+ warn "WARNING: Error fetching #{uri}: #{e}"
96
114
  end
115
+
116
+ requirements.requirements
117
+ .map { |requirement| requirement.last.to_s.gsub('.pre.', '-') }
118
+ .find(satisfied)&.peek
97
119
  end
98
120
 
99
121
  def default_sass_embedded
100
122
  repo = 'sass/dart-sass-embedded'
101
123
 
102
- tag_name = resolve_tag_name(repo, Sass::Dependencies::REQUIREMENTS[repo])
124
+ tag_name = resolve_tag_name(repo, Compiler::REQUIREMENTS)
103
125
 
104
126
  os = case Platform::OS
105
127
  when 'darwin'
@@ -138,7 +160,7 @@ module Sass
138
160
  def default_protoc
139
161
  repo = 'protocolbuffers/protobuf'
140
162
 
141
- spec = Gem::Dependency.new('google-protobuf', Sass::Dependencies::REQUIREMENTS[repo]).to_spec
163
+ spec = Gem::Dependency.new('google-protobuf').to_spec
142
164
 
143
165
  tag_name = "v#{spec.version}"
144
166
 
@@ -187,7 +209,9 @@ module Sass
187
209
  def default_sass_embedded_protocol
188
210
  repo = 'sass/embedded-protocol'
189
211
 
190
- 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
191
215
 
192
216
  "https://raw.githubusercontent.com/#{repo}/#{tag_name}/embedded_sass.proto"
193
217
  end
@@ -0,0 +1,13 @@
1
+ path = WScript.Arguments.item(0)
2
+ destinationPath = WScript.Arguments.item(1)
3
+
4
+ Set fileSystemObject = WScript.CreateObject("Scripting.FileSystemObject")
5
+ If NOT fileSystemObject.FolderExists(destinationPath) Then
6
+ fileSystemObject.CreateFolder(destinationPath)
7
+ End If
8
+
9
+ Set application = WScript.CreateObject("Shell.Application")
10
+ Set pathNameSpace = application.NameSpace(fileSystemObject.GetAbsolutePathName(path))
11
+ Set destinationPathNameSpace = application.NameSpace(fileSystemObject.GetAbsolutePathName(destinationPath))
12
+
13
+ destinationPathNameSpace.CopyHere pathNameSpace.items, 4 + 16
@@ -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.25'
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.25
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-21 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
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.18.0
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: minitest
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -56,72 +42,72 @@ dependencies:
56
42
  name: minitest-around
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
- - - ">="
45
+ - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: '0'
47
+ version: 0.5.0
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
- - - ">="
52
+ - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: '0'
54
+ version: 0.5.0
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rake
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ">="
59
+ - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '0'
61
+ version: 13.0.6
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - ">="
66
+ - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: '0'
68
+ version: 13.0.6
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rubocop
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - ">="
73
+ - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '0'
75
+ version: 1.21.0
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - ">="
80
+ - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '0'
82
+ version: 1.21.0
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: rubocop-minitest
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
- - - ">="
87
+ - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '0'
89
+ version: 0.15.0
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
- - - ">="
94
+ - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: '0'
96
+ version: 0.15.0
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: rubocop-rake
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
- - - ">="
101
+ - - "~>"
116
102
  - !ruby/object:Gem::Version
117
- version: '0'
103
+ version: 0.6.0
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
- - - ">="
108
+ - - "~>"
123
109
  - !ruby/object:Gem::Version
124
- version: '0'
110
+ version: 0.6.0
125
111
  description: A Ruby library that will communicate with Embedded Dart Sass using the
126
112
  Embedded Sass protocol.
127
113
  email:
@@ -134,10 +120,11 @@ files:
134
120
  - LICENSE
135
121
  - README.md
136
122
  - ext/sass/Makefile
137
- - ext/sass/dependencies.rb
138
123
  - ext/sass/extconf.rb
124
+ - ext/sass/unzip.vbs
139
125
  - lib/sass.rb
140
126
  - lib/sass/compile.rb
127
+ - lib/sass/compiler.rb
141
128
  - lib/sass/embedded.rb
142
129
  - lib/sass/error.rb
143
130
  - lib/sass/info.rb
@@ -152,7 +139,9 @@ homepage: https://github.com/ntkme/sass-embedded-host-ruby
152
139
  licenses:
153
140
  - MIT
154
141
  metadata:
155
- source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.7.25
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
+ funding_uri: https://github.com/sponsors/ntkme
156
145
  post_install_message:
157
146
  rdoc_options: []
158
147
  require_paths:
@@ -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