sass-embedded 0.13.0 → 0.13.4

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: 11917ed4d9543adf380300ee5ba1db25d8681a69db35b6e4fe6ac83b4e1b07a6
4
- data.tar.gz: ca18113ebee1ba530183bb477e4f927c0966903caa12174bba54382006ab5a8d
3
+ metadata.gz: 891f4a0e1dbda14a01b411167cc6c9e6e0a73bd42b4a5ac903335619da08f95e
4
+ data.tar.gz: 97371b93430f4232eb68d9e5e1b4d15b9f75246ed530935e525160d383f5ec88
5
5
  SHA512:
6
- metadata.gz: 420269d9de74346fcceb81c391b7eafef25b9001d4c3ce67959bb1d6da1d4a6838c1ae9a22f794fc31b44ad2961ed55ecbf94f0bf980dc316ee7a6e51b87b88d
7
- data.tar.gz: dd7bb981674b7a19f91169c402e540ff2d77abf50461383b7431a986cab21f06c7de8124825050325cfb8296f8066a95b2a03ebdd3c3da754aeb50bf4cf998aa
6
+ metadata.gz: 0c4aabe5670786260198093754baaf57a4142894829a2242af0db4268394794b302fce042050e396f3dc495be1036a5df29cf73e47ea1dd661236f3d55692db6
7
+ data.tar.gz: 87ebbf21f8c9c87c662b0eca0010d008ec62aab94653059cbc64af607737544413154c3b88133c63c4eec11e15e4175fb05844d3371de44b966aa7382c5a52c4
@@ -34,7 +34,7 @@ module Sass
34
34
  @path = path
35
35
  @source = source
36
36
 
37
- @importer = importer
37
+ @importer = to_struct(importer)
38
38
  @load_paths = load_paths
39
39
  @syntax = syntax
40
40
  @url = url
@@ -48,14 +48,14 @@ module Sass
48
48
  @functions = functions.transform_keys do |key|
49
49
  key.to_s.split('(')[0].chomp
50
50
  end
51
- @importers = importers
51
+ @importers = importers.map do |obj|
52
+ to_struct(obj)
53
+ end
52
54
 
53
55
  @alert_ascii = alert_ascii
54
56
  @alert_color = alert_color
55
57
 
56
- %i[debug warn].each do |sym|
57
- instance_variable_set("@#{sym}".to_sym, get_method(logger, sym))
58
- end
58
+ @logger = to_struct(logger)
59
59
 
60
60
  @quiet_deps = quiet_deps
61
61
  @verbose = verbose
@@ -115,26 +115,26 @@ module Sass
115
115
  def log(event)
116
116
  case event.type
117
117
  when :DEBUG
118
- if @debug.nil?
119
- Kernel.warn(event.formatted)
118
+ if @logger.respond_to? :debug
119
+ @logger.debug(event.message, span: Logger::SourceSpan.from_proto(event.span))
120
120
  else
121
- @debug.call(event.message, span: Logger::SourceSpan.from_proto(event.span))
121
+ Kernel.warn(event.formatted)
122
122
  end
123
123
  when :DEPRECATION_WARNING
124
- if @warn.nil?
125
- Kernel.warn(event.formatted)
124
+ if @logger.respond_to? :warn
125
+ @logger.warn(event.message, deprecation: true,
126
+ span: Logger::SourceSpan.from_proto(event.span),
127
+ stack: event.stack_trace)
126
128
  else
127
- @warn.call(event.message, deprecation: true,
128
- span: Logger::SourceSpan.from_proto(event.span),
129
- stack: event.stack_trace)
129
+ Kernel.warn(event.formatted)
130
130
  end
131
131
  when :WARNING
132
- if @warn.nil?
133
- Kernel.warn(event.formatted)
132
+ if @logger.respond_to? :warn
133
+ @logger.warn(event.message, deprecation: false,
134
+ span: Logger::SourceSpan.from_proto(event.span),
135
+ stack: event.stack_trace)
134
136
  else
135
- @warn.call(event.message, deprecation: false,
136
- span: Logger::SourceSpan.from_proto(event.span),
137
- stack: event.stack_trace)
137
+ Kernel.warn(event.formatted)
138
138
  end
139
139
  end
140
140
  end
@@ -162,9 +162,9 @@ module Sass
162
162
  end
163
163
 
164
164
  def canonicalize_response(canonicalize_request)
165
- importer = importer_with_id(canonicalize_request.importer_id)
166
- url = get_method(importer, :canonicalize).call canonicalize_request.url,
167
- from_import: canonicalize_request.from_import
165
+ importer = importer_of_id canonicalize_request.importer_id
166
+ url = importer.canonicalize canonicalize_request.url,
167
+ from_import: canonicalize_request.from_import
168
168
 
169
169
  EmbeddedProtocol::InboundMessage::CanonicalizeResponse.new(
170
170
  id: canonicalize_request.id,
@@ -178,15 +178,15 @@ module Sass
178
178
  end
179
179
 
180
180
  def import_response(import_request)
181
- importer = importer_with_id(import_request.importer_id)
182
- importer_result = get_method(importer, :load).call import_request.url
181
+ importer = importer_of_id import_request.importer_id
182
+ importer_result = to_struct importer.load(import_request.url)
183
183
 
184
184
  EmbeddedProtocol::InboundMessage::ImportResponse.new(
185
185
  id: import_request.id,
186
186
  success: EmbeddedProtocol::InboundMessage::ImportResponse::ImportSuccess.new(
187
- contents: get_attr(importer_result, :contents),
188
- syntax: to_proto_syntax(get_attr(importer_result, :syntax)),
189
- source_map_url: get_attr(importer_result, :source_map_url)
187
+ contents: importer_result.contents,
188
+ syntax: to_proto_syntax(importer_result.syntax),
189
+ source_map_url: importer_result.respond_to?(:source_map_url) ? importer_result.source_map_url : nil
190
190
  )
191
191
  )
192
192
  rescue StandardError => e
@@ -197,9 +197,9 @@ module Sass
197
197
  end
198
198
 
199
199
  def file_import_response(file_import_request)
200
- file_importer = importer_with_id(file_import_request.importer_id)
201
- file_url = get_method(file_importer, :find_file_url).call file_import_request.url,
202
- from_import: file_import_request.from_import
200
+ importer = importer_of_id file_import_request.importer_id
201
+ file_url = importer.find_file_url file_import_request.url,
202
+ from_import: file_import_request.from_import
203
203
 
204
204
  raise "file_url must be a file: URL, was \"#{file_url}\"" if !file_url.nil? && !file_url.start_with?('file:')
205
205
 
@@ -254,8 +254,8 @@ module Sass
254
254
  end
255
255
 
256
256
  def to_proto_importer(importer, id)
257
- is_importer = get_method(importer, :canonicalize) && get_method(importer, :load)
258
- is_file_importer = get_method(importer, :find_file_url)
257
+ is_importer = importer.respond_to?(:canonicalize) && importer.respond_to?(:load)
258
+ is_file_importer = importer.respond_to?(:find_file_url)
259
259
 
260
260
  if is_importer && !is_file_importer
261
261
  EmbeddedProtocol::InboundMessage::CompileRequest::Importer.new(
@@ -284,7 +284,7 @@ module Sass
284
284
  proto_importers
285
285
  end
286
286
 
287
- def importer_with_id(id)
287
+ def importer_of_id(id)
288
288
  if id == @importers.length
289
289
  @importer
290
290
  else
@@ -292,30 +292,22 @@ module Sass
292
292
  end
293
293
  end
294
294
 
295
- def get_method(obj, sym)
296
- sym = sym.to_sym
297
- if obj.respond_to? sym
298
- obj.method(sym)
299
- elsif obj.respond_to? :[]
300
- if obj[sym].respond_to? :call
301
- obj[sym]
302
- elsif obj[sym.to_s].respond_to? :call
303
- obj[sym.to_s]
304
- end
305
- end
306
- end
295
+ def to_struct(obj)
296
+ return obj unless obj.is_a? Hash
307
297
 
308
- def get_attr(obj, sym)
309
- sym = sym.to_sym
310
- if obj.respond_to? sym
311
- obj.method(sym).call
312
- elsif obj.respond_to? :[]
313
- if obj[sym]
314
- obj[sym]
315
- elsif obj[sym.to_s]
316
- obj[sym.to_s]
298
+ struct = Object.new
299
+ obj.each do |key, value|
300
+ if value.respond_to? :call
301
+ struct.define_singleton_method key.to_sym do |*args, **kwargs|
302
+ value.call(*args, **kwargs)
303
+ end
304
+ else
305
+ struct.define_singleton_method key.to_sym do
306
+ value
307
+ end
317
308
  end
318
309
  end
310
+ struct
319
311
  end
320
312
  end
321
313
  end
@@ -3,7 +3,7 @@
3
3
  module Sass
4
4
  class Embedded
5
5
  class Compiler
6
- REQUIREMENTS = '~> 1.49.6'
6
+ REQUIREMENTS = '~> 1.49.7'
7
7
  end
8
8
  end
9
9
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'uri'
4
+ require_relative 'platform'
4
5
 
5
6
  module Sass
6
7
  class Embedded
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Sass
4
4
  class Embedded
5
- VERSION = '0.13.0'
5
+ VERSION = '0.13.4'
6
6
  end
7
7
  end
data/lib/sass/embedded.rb CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  require_relative 'compile_error'
4
4
  require_relative 'compile_result'
5
- require_relative 'importer_result'
6
5
  require_relative 'embedded/channel'
7
6
  require_relative 'embedded/compile_context'
8
7
  require_relative 'embedded/render'
9
8
  require_relative 'embedded/url'
10
9
  require_relative 'embedded/version'
11
10
  require_relative 'embedded/version_context'
11
+ require_relative 'importer_result'
12
12
  require_relative 'logger'
13
13
 
14
14
  module Sass
@@ -123,7 +123,7 @@ module Sass
123
123
  #
124
124
  # @raise [ProtocolError]
125
125
  def info
126
- @info ||= VersionContext.new(@channel).receive_message
126
+ @info ||= "sass-embedded\t#{VersionContext.new(@channel).receive_message.implementation_version}"
127
127
  end
128
128
 
129
129
  def close
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.13.0
4
+ version: 0.13.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - なつき
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-01 00:00:00.000000000 Z
11
+ date: 2022-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -192,8 +192,8 @@ homepage: https://github.com/ntkme/sass-embedded-host-ruby
192
192
  licenses:
193
193
  - MIT
194
194
  metadata:
195
- documentation_uri: https://www.rubydoc.info/gems/sass-embedded/0.13.0
196
- source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.13.0
195
+ documentation_uri: https://www.rubydoc.info/gems/sass-embedded/0.13.4
196
+ source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.13.4
197
197
  funding_uri: https://github.com/sponsors/ntkme
198
198
  post_install_message:
199
199
  rdoc_options: []