sass-embedded 0.13.4 → 0.16.1
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 +4 -4
- data/ext/sass/extconf.rb +52 -1
- data/lib/sass/compile_error.rb +1 -10
- data/lib/sass/compile_result.rb +1 -5
- data/lib/sass/embedded/channel.rb +2 -2
- data/lib/sass/embedded/compile_context/function_registry.rb +83 -0
- data/lib/sass/embedded/compile_context/importer_registry.rb +97 -0
- data/lib/sass/embedded/compile_context.rb +21 -176
- data/lib/sass/embedded/compiler/path.rb +1 -3
- data/lib/sass/embedded/compiler/requirements.rb +1 -1
- data/lib/sass/embedded/compiler.rb +7 -19
- data/lib/sass/embedded/{render.rb → legacy.rb} +79 -3
- data/lib/sass/embedded/observer.rb +2 -0
- data/lib/sass/embedded/protofier.rb +329 -0
- data/lib/sass/embedded/version.rb +1 -1
- data/lib/sass/embedded/version_context.rb +2 -3
- data/lib/sass/embedded.rb +39 -54
- data/lib/sass/embedded_protocol.rb +0 -6
- data/lib/sass/logger/source_location.rb +3 -9
- data/lib/sass/logger/source_span.rb +1 -13
- data/lib/sass/logger.rb +3 -3
- data/lib/sass/script_error.rb +5 -0
- data/lib/sass/value/argument_list.rb +24 -0
- data/lib/sass/value/boolean.rb +42 -0
- data/lib/sass/value/color.rb +213 -0
- data/lib/sass/value/function.rb +35 -0
- data/lib/sass/value/fuzzy_math.rb +81 -0
- data/lib/sass/value/list.rb +60 -0
- data/lib/sass/value/map.rb +57 -0
- data/lib/sass/value/null.rb +39 -0
- data/lib/sass/value/number/unit.rb +186 -0
- data/lib/sass/value/number.rb +272 -0
- data/lib/sass/value/string.rb +43 -0
- data/lib/sass/value.rb +92 -0
- data/lib/sass.rb +47 -48
- metadata +26 -57
- data/lib/sass/embedded/platform.rb +0 -55
- data/lib/sass/embedded/url.rb +0 -36
- data/lib/sass/file_importer.rb +0 -10
- data/lib/sass/importer.rb +0 -14
- data/lib/sass/importer_result.rb +0 -14
data/lib/sass.rb
CHANGED
@@ -1,83 +1,82 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative 'sass/compile_error'
|
4
|
+
require_relative 'sass/compile_result'
|
3
5
|
require_relative 'sass/embedded'
|
6
|
+
require_relative 'sass/embedded/channel'
|
7
|
+
require_relative 'sass/embedded/observer'
|
8
|
+
require_relative 'sass/embedded/compile_context'
|
9
|
+
require_relative 'sass/embedded/compile_context/function_registry'
|
10
|
+
require_relative 'sass/embedded/compile_context/importer_registry'
|
11
|
+
require_relative 'sass/embedded/compiler'
|
12
|
+
require_relative 'sass/embedded/compiler/path'
|
13
|
+
require_relative 'sass/embedded_protocol'
|
14
|
+
require_relative 'sass/embedded/legacy'
|
15
|
+
require_relative 'sass/embedded/protocol_error'
|
16
|
+
require_relative 'sass/embedded/protofier'
|
17
|
+
require_relative 'sass/embedded/version'
|
18
|
+
require_relative 'sass/embedded/version_context'
|
19
|
+
require_relative 'sass/logger'
|
20
|
+
require_relative 'sass/logger/source_location'
|
21
|
+
require_relative 'sass/logger/source_span'
|
22
|
+
require_relative 'sass/script_error'
|
23
|
+
require_relative 'sass/value'
|
24
|
+
require_relative 'sass/value/list'
|
25
|
+
require_relative 'sass/value/argument_list'
|
26
|
+
require_relative 'sass/value/boolean'
|
27
|
+
require_relative 'sass/value/color'
|
28
|
+
require_relative 'sass/value/function'
|
29
|
+
require_relative 'sass/value/fuzzy_math'
|
30
|
+
require_relative 'sass/value/map'
|
31
|
+
require_relative 'sass/value/null'
|
32
|
+
require_relative 'sass/value/number'
|
33
|
+
require_relative 'sass/value/number/unit'
|
34
|
+
require_relative 'sass/value/string'
|
4
35
|
|
5
|
-
# The Sass module.
|
6
|
-
#
|
36
|
+
# The Sass module.
|
37
|
+
#
|
38
|
+
# This communicates with Embedded Dart Sass using the Embedded Sass protocol.
|
7
39
|
module Sass
|
8
40
|
class << self
|
9
|
-
# The global {.compile} method.
|
10
|
-
# and calls {Embedded#compile}.
|
41
|
+
# The global {.compile} method.
|
11
42
|
#
|
12
|
-
#
|
43
|
+
# This instantiates a global {Embedded} instance and calls {Embedded#compile}.
|
44
|
+
#
|
45
|
+
# See {Embedded#compile} for keyword arguments.
|
13
46
|
#
|
14
47
|
# @example
|
15
48
|
# Sass.compile('style.scss')
|
16
49
|
# @return [CompileResult]
|
17
50
|
# @raise [CompileError]
|
18
|
-
# @raise [ProtocolError]
|
51
|
+
# @raise [Embedded::ProtocolError]
|
19
52
|
def compile(path, **kwargs)
|
20
53
|
instance.compile(path, **kwargs)
|
21
54
|
end
|
22
55
|
|
23
|
-
# The global {.compile_string} method.
|
24
|
-
#
|
56
|
+
# The global {.compile_string} method.
|
57
|
+
#
|
58
|
+
# This instantiates a global {Embedded} instance and calls {Embedded#compile_string}.
|
25
59
|
#
|
26
|
-
# See {Embedded#compile_string} for
|
60
|
+
# See {Embedded#compile_string} for keyword arguments.
|
27
61
|
#
|
28
62
|
# @example
|
29
63
|
# Sass.compile_string('h1 { font-size: 40px; }')
|
30
64
|
# @return [CompileResult]
|
31
65
|
# @raise [CompileError]
|
32
|
-
# @raise [ProtocolError]
|
66
|
+
# @raise [Embedded::ProtocolError]
|
33
67
|
def compile_string(source, **kwargs)
|
34
68
|
instance.compile_string(source, **kwargs)
|
35
69
|
end
|
36
70
|
|
37
|
-
#
|
38
|
-
# The global {.include_paths} for Sass files. This is meant for plugins and
|
39
|
-
# libraries to register the paths to their Sass stylesheets to that they may
|
40
|
-
# be included via `@import` or `@use`. This include path is used by every
|
41
|
-
# instance of {Sass::Embedded}. They are lower-precedence than any include
|
42
|
-
# paths passed in via the `include_paths` option.
|
43
|
-
#
|
44
|
-
# If the `SASS_PATH` environment variable is set,
|
45
|
-
# the initial value of `include_paths` will be initialized based on that.
|
46
|
-
# The variable should be a colon-separated list of path names
|
47
|
-
# (semicolon-separated on Windows).
|
71
|
+
# The global {.info} method.
|
48
72
|
#
|
49
|
-
#
|
50
|
-
# Sass.include_paths << File.dirname(__FILE__) + '/sass'
|
51
|
-
# @return [Array]
|
52
|
-
def include_paths
|
53
|
-
Embedded.include_paths
|
54
|
-
end
|
55
|
-
|
56
|
-
# The global {.info} method. This instantiates a global {Embedded} instance
|
57
|
-
# and calls {Embedded#info}.
|
73
|
+
# This instantiates a global {Embedded} instance and calls {Embedded#info}.
|
58
74
|
#
|
59
|
-
# @raise [ProtocolError]
|
75
|
+
# @raise [Embedded::ProtocolError]
|
60
76
|
def info
|
61
77
|
instance.info
|
62
78
|
end
|
63
79
|
|
64
|
-
# @deprecated
|
65
|
-
# The global {.render} method. This instantiates a global {Embedded} instance
|
66
|
-
# and calls {Embedded#render}.
|
67
|
-
#
|
68
|
-
# See {Embedded#render} for supported options.
|
69
|
-
#
|
70
|
-
# @example
|
71
|
-
# Sass.render(data: 'h1 { font-size: 40px; }')
|
72
|
-
# @example
|
73
|
-
# Sass.render(file: 'style.css')
|
74
|
-
# @return [Result]
|
75
|
-
# @raise [ProtocolError]
|
76
|
-
# @raise [RenderError]
|
77
|
-
def render(**kwargs)
|
78
|
-
instance.render(**kwargs)
|
79
|
-
end
|
80
|
-
|
81
80
|
private
|
82
81
|
|
83
82
|
def instance
|
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.
|
4
|
+
version: 0.16.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- なつき
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-protobuf
|
@@ -24,62 +24,34 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.19.0
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: minitest
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 5.15.0
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 5.15.0
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: minitest-around
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 0.5.0
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 0.5.0
|
55
27
|
- !ruby/object:Gem::Dependency
|
56
28
|
name: rake
|
57
29
|
requirement: !ruby/object:Gem::Requirement
|
58
30
|
requirements:
|
59
31
|
- - "~>"
|
60
32
|
- !ruby/object:Gem::Version
|
61
|
-
version: 13.0.
|
33
|
+
version: 13.0.0
|
62
34
|
type: :development
|
63
35
|
prerelease: false
|
64
36
|
version_requirements: !ruby/object:Gem::Requirement
|
65
37
|
requirements:
|
66
38
|
- - "~>"
|
67
39
|
- !ruby/object:Gem::Version
|
68
|
-
version: 13.0.
|
40
|
+
version: 13.0.0
|
69
41
|
- !ruby/object:Gem::Dependency
|
70
42
|
name: rspec
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
72
44
|
requirements:
|
73
45
|
- - "~>"
|
74
46
|
- !ruby/object:Gem::Version
|
75
|
-
version: 3.
|
47
|
+
version: 3.11.0
|
76
48
|
type: :development
|
77
49
|
prerelease: false
|
78
50
|
version_requirements: !ruby/object:Gem::Requirement
|
79
51
|
requirements:
|
80
52
|
- - "~>"
|
81
53
|
- !ruby/object:Gem::Version
|
82
|
-
version: 3.
|
54
|
+
version: 3.11.0
|
83
55
|
- !ruby/object:Gem::Dependency
|
84
56
|
name: rubocop
|
85
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,20 +66,6 @@ dependencies:
|
|
94
66
|
- - "~>"
|
95
67
|
- !ruby/object:Gem::Version
|
96
68
|
version: 1.25.0
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: rubocop-minitest
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 0.17.0
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 0.17.0
|
111
69
|
- !ruby/object:Gem::Dependency
|
112
70
|
name: rubocop-performance
|
113
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -171,29 +129,40 @@ files:
|
|
171
129
|
- lib/sass/embedded.rb
|
172
130
|
- lib/sass/embedded/channel.rb
|
173
131
|
- lib/sass/embedded/compile_context.rb
|
132
|
+
- lib/sass/embedded/compile_context/function_registry.rb
|
133
|
+
- lib/sass/embedded/compile_context/importer_registry.rb
|
174
134
|
- lib/sass/embedded/compiler.rb
|
175
135
|
- lib/sass/embedded/compiler/path.rb
|
176
136
|
- lib/sass/embedded/compiler/requirements.rb
|
137
|
+
- lib/sass/embedded/legacy.rb
|
177
138
|
- lib/sass/embedded/observer.rb
|
178
|
-
- lib/sass/embedded/platform.rb
|
179
139
|
- lib/sass/embedded/protocol_error.rb
|
180
|
-
- lib/sass/embedded/
|
181
|
-
- lib/sass/embedded/url.rb
|
140
|
+
- lib/sass/embedded/protofier.rb
|
182
141
|
- lib/sass/embedded/version.rb
|
183
142
|
- lib/sass/embedded/version_context.rb
|
184
143
|
- lib/sass/embedded_protocol.rb
|
185
|
-
- lib/sass/file_importer.rb
|
186
|
-
- lib/sass/importer.rb
|
187
|
-
- lib/sass/importer_result.rb
|
188
144
|
- lib/sass/logger.rb
|
189
145
|
- lib/sass/logger/source_location.rb
|
190
146
|
- lib/sass/logger/source_span.rb
|
147
|
+
- lib/sass/script_error.rb
|
148
|
+
- lib/sass/value.rb
|
149
|
+
- lib/sass/value/argument_list.rb
|
150
|
+
- lib/sass/value/boolean.rb
|
151
|
+
- lib/sass/value/color.rb
|
152
|
+
- lib/sass/value/function.rb
|
153
|
+
- lib/sass/value/fuzzy_math.rb
|
154
|
+
- lib/sass/value/list.rb
|
155
|
+
- lib/sass/value/map.rb
|
156
|
+
- lib/sass/value/null.rb
|
157
|
+
- lib/sass/value/number.rb
|
158
|
+
- lib/sass/value/number/unit.rb
|
159
|
+
- lib/sass/value/string.rb
|
191
160
|
homepage: https://github.com/ntkme/sass-embedded-host-ruby
|
192
161
|
licenses:
|
193
162
|
- MIT
|
194
163
|
metadata:
|
195
|
-
documentation_uri: https://www.rubydoc.info/gems/sass-embedded/0.
|
196
|
-
source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.
|
164
|
+
documentation_uri: https://www.rubydoc.info/gems/sass-embedded/0.16.1
|
165
|
+
source_code_uri: https://github.com/ntkme/sass-embedded-host-ruby/tree/v0.16.1
|
197
166
|
funding_uri: https://github.com/sponsors/ntkme
|
198
167
|
post_install_message:
|
199
168
|
rdoc_options: []
|
@@ -210,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
179
|
- !ruby/object:Gem::Version
|
211
180
|
version: '0'
|
212
181
|
requirements: []
|
213
|
-
rubygems_version: 3.3.
|
182
|
+
rubygems_version: 3.3.7
|
214
183
|
signing_key:
|
215
184
|
specification_version: 4
|
216
185
|
summary: Use dart-sass with Ruby!
|
@@ -1,55 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Sass
|
4
|
-
class Embedded
|
5
|
-
module Platform
|
6
|
-
OS = case RbConfig::CONFIG['host_os'].downcase
|
7
|
-
when /linux/
|
8
|
-
'linux'
|
9
|
-
when /darwin/
|
10
|
-
'darwin'
|
11
|
-
when /freebsd/
|
12
|
-
'freebsd'
|
13
|
-
when /netbsd/
|
14
|
-
'netbsd'
|
15
|
-
when /openbsd/
|
16
|
-
'openbsd'
|
17
|
-
when /dragonfly/
|
18
|
-
'dragonflybsd'
|
19
|
-
when /sunos|solaris/
|
20
|
-
'solaris'
|
21
|
-
when /mingw|mswin/
|
22
|
-
'windows'
|
23
|
-
else
|
24
|
-
RbConfig::CONFIG['host_os'].downcase
|
25
|
-
end
|
26
|
-
|
27
|
-
OSVERSION = RbConfig::CONFIG['host_os'].gsub(/[^\d]/, '').to_i
|
28
|
-
|
29
|
-
CPU = RbConfig::CONFIG['host_cpu']
|
30
|
-
|
31
|
-
ARCH = case CPU.downcase
|
32
|
-
when /amd64|x86_64|x64/
|
33
|
-
'x86_64'
|
34
|
-
when /i\d86|x86|i86pc/
|
35
|
-
'i386'
|
36
|
-
when /ppc64|powerpc64/
|
37
|
-
'powerpc64'
|
38
|
-
when /ppc|powerpc/
|
39
|
-
'powerpc'
|
40
|
-
when /sparcv9|sparc64/
|
41
|
-
'sparcv9'
|
42
|
-
when /arm64|aarch64/ # MacOS calls it "arm64", other operating systems "aarch64"
|
43
|
-
'aarch64'
|
44
|
-
when /^arm/
|
45
|
-
if OS == 'darwin' # Ruby before 3.0 reports "arm" instead of "arm64" as host_cpu on darwin
|
46
|
-
'aarch64'
|
47
|
-
else
|
48
|
-
'arm'
|
49
|
-
end
|
50
|
-
else
|
51
|
-
RbConfig::CONFIG['host_cpu']
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
data/lib/sass/embedded/url.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'uri'
|
4
|
-
require_relative 'platform'
|
5
|
-
|
6
|
-
module Sass
|
7
|
-
class Embedded
|
8
|
-
# The {Url} module.
|
9
|
-
module Url
|
10
|
-
# The {::URI::Parser} that is in consistent with RFC 2396 (URI Generic Syntax) and dart:core library.
|
11
|
-
URI_PARSER = URI::Parser.new({ RESERVED: ';/?:@&=+$,' })
|
12
|
-
|
13
|
-
FILE_SCHEME = 'file://'
|
14
|
-
|
15
|
-
private_constant :URI_PARSER, :FILE_SCHEME
|
16
|
-
|
17
|
-
module_function
|
18
|
-
|
19
|
-
def path_to_file_url(path)
|
20
|
-
if File.absolute_path? path
|
21
|
-
URI_PARSER.escape "#{FILE_SCHEME}#{Platform::OS == 'windows' ? File::SEPARATOR : ''}#{path}"
|
22
|
-
else
|
23
|
-
URI_PARSER.escape path
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def file_url_to_path(url)
|
28
|
-
if url.start_with? FILE_SCHEME
|
29
|
-
URI_PARSER.unescape url[(FILE_SCHEME.length + (Platform::OS == 'windows' ? 1 : 0))..]
|
30
|
-
else
|
31
|
-
URI_PARSER.unescape url
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
data/lib/sass/file_importer.rb
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Sass
|
4
|
-
# The {FileImporter} interface.
|
5
|
-
class FileImporter
|
6
|
-
def find_file_url(url, from_import:) # rubocop:disable Lint/UnusedMethodArgument
|
7
|
-
raise NotImplementedError, 'FileImporter#find_file_url must be implemented'
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
data/lib/sass/importer.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Sass
|
4
|
-
# The {Importer} interface.
|
5
|
-
class Importer
|
6
|
-
def canonicalize(url) # rubocop:disable Lint/UnusedMethodArgument
|
7
|
-
raise NotImplementedError, 'Importer#canonicalize must be implemented'
|
8
|
-
end
|
9
|
-
|
10
|
-
def load(canonical_url) # rubocop:disable Lint/UnusedMethodArgument
|
11
|
-
raise NotImplementedError, 'Importer#load must be implemented'
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
data/lib/sass/importer_result.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Sass
|
4
|
-
# The {ImporterResult} of {Importer#load}.
|
5
|
-
class ImporterResult
|
6
|
-
attr_reader :contents, :syntax, :source_map_url
|
7
|
-
|
8
|
-
def initialize(contents, syntax, source_map_url = nil)
|
9
|
-
@contents = contents
|
10
|
-
@syntax = syntax
|
11
|
-
@source_map_url = source_map_url
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|