sass-embedded 0.6.0 → 0.6.5

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: d8c00ba9bcce40d392862171f66b9ff3ef2ce1ef13e0a9d30a8541bc93804f6e
4
- data.tar.gz: 9d4ccb5ab536b1f6a76a0e350a1244e00059d42db1ce666e5f7b19a84343424c
3
+ metadata.gz: f4a69fa6a8ad98d3491aac0d560de5c53c85c87ce07b0e010a91aa3df2cfdf4d
4
+ data.tar.gz: c696a382fc076ef6c605d50bd82f5cb2ec8b7aa315792ea89c7eabcb97fc9a91
5
5
  SHA512:
6
- metadata.gz: 7c6e542f29de342a3e9358136d3dda10be13d74c44c1a0e86be21f22a96997835a192aaf041d4a16d4092317de272d8be5589ad9075504057c9dbd7992be8b39
7
- data.tar.gz: c05f1f8cd413387803ee9078fbb6670f21fc24ddde8b2661f64b495b7418ebea1488b496d98bcad9ebedd6e4f04532441652bf3b8aa2f4587a3780df548c0318
6
+ metadata.gz: 0a12cbd0703555a1fcb7dfa77905e983d499dd661c0cfa8c17c6293db5e6e45c8c42739a7e476b1f76b8d7f4ccf045cc773e533d9198bb5a2cbc8ee363d028f9
7
+ data.tar.gz: 3fb9c585f46a972c66e756283afd78422623a5a6948ca3df88a3477d95250a4b4dae39a189107084712328bd3e9faceb2fb3cad8f4792164225db66b36cc4755
data/lib/sass/embedded.rb CHANGED
@@ -23,14 +23,14 @@ module Sass
23
23
  #
24
24
  # @raise [ProtocolError]
25
25
  def info
26
- @info ||= Version.new(@transport, next_id).fetch
26
+ @info ||= Version.new(@transport, next_id).message
27
27
  end
28
28
 
29
29
  # The {Embedded#render} method.
30
30
  #
31
31
  # See {file:README.md#options} for supported options.
32
32
  #
33
- # @return [Result]
33
+ # @return [RenderResult]
34
34
  # @raise [ProtocolError]
35
35
  # @raise [RenderError]
36
36
  def render(data: nil,
@@ -44,11 +44,13 @@ module Sass
44
44
  source_map: false,
45
45
  out_file: nil,
46
46
  omit_source_map_url: false,
47
- # source_map_contents: false,
47
+ source_map_contents: false,
48
48
  source_map_embed: false,
49
49
  source_map_root: '',
50
50
  functions: {},
51
51
  importer: [])
52
+ raise NotImplementedError, 'source_map_contents is not implemented' unless source_map_contents == false
53
+
52
54
  start = Util.now
53
55
 
54
56
  indent_type = parse_indent_type(indent_type)
@@ -64,7 +66,7 @@ module Sass
64
66
  source_map: source_map,
65
67
  out_file: out_file,
66
68
  functions: functions,
67
- importer: importer).fetch
69
+ importer: importer).message
68
70
 
69
71
  if message.failure
70
72
  raise RenderError.new(
@@ -101,9 +103,9 @@ module Sass
101
103
 
102
104
  finish = Util.now
103
105
 
104
- stats = Result::Stats.new(file.nil? ? 'data' : file, start, finish, finish - start)
106
+ stats = RenderResult::Stats.new(file.nil? ? 'data' : file, start, finish, finish - start)
105
107
 
106
- Result.new(css, map, stats)
108
+ RenderResult.new(css, map, stats)
107
109
  end
108
110
 
109
111
  def close
@@ -181,7 +183,7 @@ module Sass
181
183
  else
182
184
  source_map
183
185
  end
184
- css += "#{linefeed}/*# sourceMappingURL=#{url} */"
186
+ css += "#{linefeed}#{linefeed}/*# sourceMappingURL=#{url} */"
185
187
  end
186
188
 
187
189
  -css
data/lib/sass/observer.rb CHANGED
@@ -15,7 +15,7 @@ module Sass
15
15
  @transport.add_observer self
16
16
  end
17
17
 
18
- def fetch
18
+ def message
19
19
  @mutex.synchronize do
20
20
  @condition_variable.wait(@mutex) if @error.nil? && @message.nil?
21
21
  end
data/lib/sass/render.rb CHANGED
@@ -47,15 +47,17 @@ module Sass
47
47
  super(nil, message)
48
48
  end
49
49
  when EmbeddedProtocol::OutboundMessage::LogEvent
50
- # not implemented yet
50
+ return unless message.compilation_id == @id && $stderr.tty?
51
+
52
+ warn message.formatted
51
53
  when EmbeddedProtocol::OutboundMessage::CanonicalizeRequest
52
- return unless message['compilation_id'] == @id
54
+ return unless message.compilation_id == @id
53
55
 
54
56
  Thread.new do
55
57
  @transport.send canonicalize_response message
56
58
  end
57
59
  when EmbeddedProtocol::OutboundMessage::ImportRequest
58
- return unless message['compilation_id'] == @id
60
+ return unless message.compilation_id == @id
59
61
 
60
62
  Thread.new do
61
63
  @transport.send import_response message
@@ -63,7 +65,7 @@ module Sass
63
65
  when EmbeddedProtocol::OutboundMessage::FileImportRequest
64
66
  raise NotImplementedError, 'FileImportRequest is not implemented'
65
67
  when EmbeddedProtocol::OutboundMessage::FunctionCallRequest
66
- return unless message['compilation_id'] == @id
68
+ return unless message.compilation_id == @id
67
69
 
68
70
  Thread.new do
69
71
  @transport.send function_call_response message
data/lib/sass/result.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Sass
4
- # The {Result} of {Embedded#render}.
5
- class Result
4
+ # The {RenderResult} of {Embedded#render}.
5
+ class RenderResult
6
6
  include Struct
7
7
 
8
8
  attr_reader :css, :map, :stats
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.6.0'
4
+ VERSION = '0.6.5'
5
5
  end
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.email = ['i@ntk.me']
12
12
  spec.summary = 'Use dart-sass with Ruby!'
13
13
  spec.description = 'Use dart-sass with Ruby!'
14
- spec.homepage = 'https://github.com/ntkme/embedded-host-ruby'
14
+ spec.homepage = 'https://github.com/ntkme/sass-embedded-host-ruby'
15
15
  spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0")
@@ -15,7 +15,7 @@ module Sass
15
15
  end
16
16
 
17
17
  def render(data)
18
- @embedded.render(data: data)[:css]
18
+ @embedded.render(data: data).css
19
19
  end
20
20
 
21
21
  def test_concurrency
@@ -23,7 +23,7 @@ module Sass
23
23
  threads = []
24
24
  10.times do |i|
25
25
  threads << Thread.new(i) do |id|
26
- output = @embedded.render(data: "div { width: #{id} }")[:css]
26
+ output = @embedded.render(data: "div { width: #{id} }").css
27
27
  assert_match(/#{id}/, output)
28
28
  end
29
29
  end
@@ -162,7 +162,7 @@ module Sass
162
162
  )
163
163
  )
164
164
  }
165
- })[:css]
165
+ }).css
166
166
  end
167
167
 
168
168
  # rubocop:enable Layout/LineLength
@@ -334,7 +334,7 @@ module Sass
334
334
  )
335
335
  )
336
336
  }
337
- })[:css]
337
+ }).css
338
338
  assert_match(/test_key1/, output)
339
339
  assert_match(/test_key2/, output)
340
340
  assert_match(/test_value/, output)
@@ -356,7 +356,7 @@ module Sass
356
356
  )
357
357
  )
358
358
  }
359
- })[:css]
359
+ }).css
360
360
 
361
361
  assert_match(/custom_function/, output)
362
362
  end
@@ -368,7 +368,7 @@ module Sass
368
368
  'test_function()': lambda {
369
369
  Class.new
370
370
  }
371
- })[:css]
371
+ }).css
372
372
  end
373
373
  end
374
374
 
@@ -15,7 +15,7 @@ module Sass
15
15
  end
16
16
 
17
17
  def render(data, importer)
18
- @embedded.render(data: data, importer: importer)[:css]
18
+ @embedded.render(data: data, importer: importer).css
19
19
  end
20
20
 
21
21
  def test_custom_importer_works
@@ -121,7 +121,7 @@ module Sass
121
121
  lambda { |_url, prev|
122
122
  { contents: ".#{prev} { color: red; }" }
123
123
  }
124
- ])[:css]
124
+ ]).css
125
125
 
126
126
  assert_equal <<~CSS.chomp, output
127
127
  .import-parent-filename.scss {
@@ -140,10 +140,10 @@ module Sass
140
140
  lambda { |_url, _prev|
141
141
  { contents: 'h1 { color: black; }' }
142
142
  }
143
- ])[:css]
143
+ ]).css
144
144
  }
145
145
  }
146
- ])[:css]
146
+ ]).css
147
147
 
148
148
  assert_equal <<~CSS.chomp, output
149
149
  h1 {
@@ -31,7 +31,7 @@ module Sass
31
31
  assert_equal css, @embedded.render(file: 'styles.scss',
32
32
  include_paths: %w[
33
33
  included_1 included_2
34
- ])[:css]
34
+ ]).css
35
35
  end
36
36
 
37
37
  def test_global_include_paths
@@ -51,7 +51,7 @@ module Sass
51
51
  }
52
52
  CSS
53
53
 
54
- assert_equal css, @embedded.render(file: 'styles.scss')[:css]
54
+ assert_equal css, @embedded.render(file: 'styles.scss').css
55
55
  end
56
56
 
57
57
  def test_include_paths_from_env
@@ -35,7 +35,7 @@ module Sass
35
35
  @embedded.render(data: sass, indented_syntax: false)
36
36
  end
37
37
 
38
- assert_equal css, @embedded.render(data: sass, indented_syntax: true)[:css]
38
+ assert_equal css, @embedded.render(data: sass, indented_syntax: true).css
39
39
  end
40
40
 
41
41
  def test_input_file_with_indented_syntax
@@ -53,9 +53,9 @@ module Sass
53
53
 
54
54
  temp_file('style.sass', sass)
55
55
 
56
- assert_equal css, @embedded.render(file: 'style.sass')[:css]
57
- assert_equal css, @embedded.render(file: 'style.sass', indented_syntax: true)[:css]
58
- assert_equal css, @embedded.render(file: 'style.sass', indented_syntax: false)[:css]
56
+ assert_equal css, @embedded.render(file: 'style.sass').css
57
+ assert_equal css, @embedded.render(file: 'style.sass', indented_syntax: true).css
58
+ assert_equal css, @embedded.render(file: 'style.sass', indented_syntax: false).css
59
59
  end
60
60
  end
61
61
  end
data/test/input_test.rb CHANGED
@@ -30,7 +30,7 @@ module Sass
30
30
  CSS
31
31
 
32
32
  result = @embedded.render(data: scss)
33
- assert_equal css, result[:css]
33
+ assert_equal css, result.css
34
34
  end
35
35
 
36
36
  def test_input_file
@@ -50,7 +50,7 @@ module Sass
50
50
 
51
51
  temp_file('style.scss', scss)
52
52
  result = @embedded.render(file: 'style.scss')
53
- assert_equal css, result[:css]
53
+ assert_equal css, result.css
54
54
  end
55
55
  end
56
56
  end
data/test/output_test.rb CHANGED
@@ -23,26 +23,26 @@ module Sass
23
23
  }
24
24
  SCSS
25
25
 
26
- assert_equal <<~CSS.chomp, @embedded.render(data: data, output_style: :expanded)[:css]
26
+ assert_equal <<~CSS.chomp, @embedded.render(data: data, output_style: :expanded).css
27
27
  .foo {
28
28
  baz: bang;
29
29
  }
30
30
  CSS
31
31
 
32
- assert_equal <<~CSS.chomp, @embedded.render(data: data, output_style: :compressed)[:css]
32
+ assert_equal <<~CSS.chomp, @embedded.render(data: data, output_style: :compressed).css
33
33
  .foo{baz:bang}
34
34
  CSS
35
35
 
36
36
  assert_raises(ArgumentError) do
37
- @embedded.render(data: data, output_style: :nested)[:css]
37
+ @embedded.render(data: data, output_style: :nested).css
38
38
  end
39
39
 
40
40
  assert_raises(ArgumentError) do
41
- @embedded.render(data: data, output_style: :compact)[:css]
41
+ @embedded.render(data: data, output_style: :compact).css
42
42
  end
43
43
 
44
44
  assert_raises(ArgumentError) do
45
- @embedded.render(data: data, output_style: nil)[:css]
45
+ @embedded.render(data: data, output_style: nil).css
46
46
  end
47
47
  end
48
48
 
@@ -55,7 +55,7 @@ module Sass
55
55
  SCSS
56
56
 
57
57
  def test_output_indent_width
58
- assert_equal <<~CSS.chomp, @embedded.render(data: DATA_INDENT_TEST, indent_width: 0)[:css]
58
+ assert_equal <<~CSS.chomp, @embedded.render(data: DATA_INDENT_TEST, indent_width: 0).css
59
59
  @media all {
60
60
  .foo {
61
61
  baz: bang;
@@ -63,7 +63,7 @@ module Sass
63
63
  }
64
64
  CSS
65
65
 
66
- assert_equal <<~CSS.chomp, @embedded.render(data: DATA_INDENT_TEST, indent_width: 1)[:css]
66
+ assert_equal <<~CSS.chomp, @embedded.render(data: DATA_INDENT_TEST, indent_width: 1).css
67
67
  @media all {
68
68
  .foo {
69
69
  baz: bang;
@@ -71,7 +71,7 @@ module Sass
71
71
  }
72
72
  CSS
73
73
 
74
- assert_equal <<~CSS.chomp, @embedded.render(data: DATA_INDENT_TEST, indent_width: 4)[:css]
74
+ assert_equal <<~CSS.chomp, @embedded.render(data: DATA_INDENT_TEST, indent_width: 4).css
75
75
  @media all {
76
76
  .foo {
77
77
  baz: bang;
@@ -79,7 +79,7 @@ module Sass
79
79
  }
80
80
  CSS
81
81
 
82
- assert_equal <<~CSS.chomp, @embedded.render(data: DATA_INDENT_TEST, indent_width: 10)[:css]
82
+ assert_equal <<~CSS.chomp, @embedded.render(data: DATA_INDENT_TEST, indent_width: 10).css
83
83
  @media all {
84
84
  .foo {
85
85
  baz: bang;
@@ -88,20 +88,20 @@ module Sass
88
88
  CSS
89
89
 
90
90
  assert_raises(RangeError) do
91
- @embedded.render(data: DATA_INDENT_TEST, indent_width: -1)[:css]
91
+ @embedded.render(data: DATA_INDENT_TEST, indent_width: -1).css
92
92
  end
93
93
 
94
94
  assert_raises(RangeError) do
95
- @embedded.render(data: DATA_INDENT_TEST, indent_width: 11)[:css]
95
+ @embedded.render(data: DATA_INDENT_TEST, indent_width: 11).css
96
96
  end
97
97
 
98
98
  assert_raises(ArgumentError) do
99
- @embedded.render(data: DATA_INDENT_TEST, indent_width: 3.14)[:css]
99
+ @embedded.render(data: DATA_INDENT_TEST, indent_width: 3.14).css
100
100
  end
101
101
  end
102
102
 
103
103
  def test_output_indent_type
104
- assert_equal <<~CSS.chomp, @embedded.render(data: DATA_INDENT_TEST, indent_type: :tab)[:css]
104
+ assert_equal <<~CSS.chomp, @embedded.render(data: DATA_INDENT_TEST, indent_type: :tab).css
105
105
  @media all {
106
106
  \t\t.foo {
107
107
  \t\t\t\tbaz: bang;
@@ -109,7 +109,7 @@ module Sass
109
109
  }
110
110
  CSS
111
111
 
112
- assert_equal <<~CSS.chomp, @embedded.render(data: DATA_INDENT_TEST, indent_width: 1, indent_type: 'tab')[:css]
112
+ assert_equal <<~CSS.chomp, @embedded.render(data: DATA_INDENT_TEST, indent_width: 1, indent_type: 'tab').css
113
113
  @media all {
114
114
  \t.foo {
115
115
  \t\tbaz: bang;
@@ -127,10 +127,10 @@ module Sass
127
127
  }
128
128
  SCSS
129
129
 
130
- assert_equal ".foo {\n baz: bang;\n}", @embedded.render(data: data, linefeed: :lf)[:css]
131
- assert_equal ".foo {\n\r baz: bang;\n\r}", @embedded.render(data: data, linefeed: :lfcr)[:css]
132
- assert_equal ".foo {\r baz: bang;\r}", @embedded.render(data: data, linefeed: :cr)[:css]
133
- assert_equal ".foo {\r\n baz: bang;\r\n}", @embedded.render(data: data, linefeed: :crlf)[:css]
130
+ assert_equal ".foo {\n baz: bang;\n}", @embedded.render(data: data, linefeed: :lf).css
131
+ assert_equal ".foo {\n\r baz: bang;\n\r}", @embedded.render(data: data, linefeed: :lfcr).css
132
+ assert_equal ".foo {\r baz: bang;\r}", @embedded.render(data: data, linefeed: :cr).css
133
+ assert_equal ".foo {\r\n baz: bang;\r\n}", @embedded.render(data: data, linefeed: :crlf).css
134
134
  end
135
135
  end
136
136
  end
data/test/render_test.rb CHANGED
@@ -5,7 +5,7 @@ require_relative 'test_helper'
5
5
  module Sass
6
6
  class RenderTest < MiniTest::Test
7
7
  def test_sass_render
8
- assert_equal '', ::Sass.render(data: '')[:css]
8
+ assert_equal '', ::Sass.render(data: '').css
9
9
 
10
10
  css = <<~CSS.chomp
11
11
  h1 {
@@ -13,7 +13,7 @@ module Sass
13
13
  }
14
14
  CSS
15
15
 
16
- assert_equal css, ::Sass.render(data: 'h1 { font-size: 2rem; }')[:css]
16
+ assert_equal css, ::Sass.render(data: 'h1 { font-size: 2rem; }').css
17
17
  end
18
18
  end
19
19
  end
@@ -31,8 +31,8 @@ module Sass
31
31
  temp_file('style.scss', scss)
32
32
 
33
33
  result = @embedded.render(file: 'style.scss')
34
- assert_equal css, result[:css]
35
- assert_nil result[:map]
34
+ assert_equal css, result.css
35
+ assert_nil result.map
36
36
  end
37
37
 
38
38
  def test_source_map_file_as_string
@@ -47,6 +47,7 @@ module Sass
47
47
  h1 {
48
48
  font-size: 40px;
49
49
  }
50
+
50
51
  /*# sourceMappingURL=out.map */
51
52
  CSS
52
53
 
@@ -54,8 +55,8 @@ module Sass
54
55
 
55
56
  result = @embedded.render(file: 'style.scss',
56
57
  source_map: 'out.map')
57
- assert_equal css, result[:css]
58
- JSON.parse(result[:map])
58
+ assert_equal css, result.css
59
+ JSON.parse(result.map)
59
60
  end
60
61
 
61
62
  def test_source_map_true_without_out_file_has_no_effect
@@ -76,8 +77,8 @@ module Sass
76
77
 
77
78
  result = @embedded.render(file: 'style.scss',
78
79
  source_map: true)
79
- assert_equal css, result[:css]
80
- assert_nil result[:map]
80
+ assert_equal css, result.css
81
+ assert_nil result.map
81
82
  end
82
83
 
83
84
  def test_source_map_true_with_out_file
@@ -92,6 +93,7 @@ module Sass
92
93
  h1 {
93
94
  font-size: 40px;
94
95
  }
96
+
95
97
  /*# sourceMappingURL=out.css.map */
96
98
  CSS
97
99
 
@@ -100,8 +102,8 @@ module Sass
100
102
  result = @embedded.render(file: 'style.scss',
101
103
  source_map: true,
102
104
  out_file: 'out.css')
103
- assert_equal css, result[:css]
104
- JSON.parse(result[:map])
105
+ assert_equal css, result.css
106
+ JSON.parse(result.map)
105
107
  end
106
108
 
107
109
  def test_omit_source_map_url
@@ -123,8 +125,8 @@ module Sass
123
125
  result = @embedded.render(file: 'style.scss',
124
126
  source_map: 'out.map',
125
127
  omit_source_map_url: true)
126
- assert_equal css, result[:css]
127
- JSON.parse(result[:map])
128
+ assert_equal css, result.css
129
+ JSON.parse(result.map)
128
130
  end
129
131
 
130
132
  def test_source_map_embedded
@@ -139,6 +141,7 @@ module Sass
139
141
  h1 {
140
142
  font-size: 40px;
141
143
  }
144
+
142
145
  /*# sourceMappingURL=data:application/json;base64,
143
146
  CSS
144
147
 
@@ -147,8 +150,8 @@ module Sass
147
150
  result = @embedded.render(file: 'style.scss',
148
151
  source_map: 'out.map',
149
152
  source_map_embed: true)
150
- assert result[:css].start_with? css
151
- JSON.parse(result[:map])
153
+ assert result.css.start_with? css
154
+ JSON.parse(result.map)
152
155
  end
153
156
 
154
157
  def test_source_map_root
@@ -163,6 +166,7 @@ module Sass
163
166
  h1 {
164
167
  font-size: 40px;
165
168
  }
169
+
166
170
  /*# sourceMappingURL=out.map */
167
171
  CSS
168
172
 
@@ -171,8 +175,8 @@ module Sass
171
175
  result = @embedded.render(file: 'style.scss',
172
176
  source_map: 'out.map',
173
177
  source_map_root: 'assets')
174
- assert_equal css, result[:css]
175
- assert_equal 'assets', JSON.parse(result[:map])['sourceRoot']
178
+ assert_equal css, result.css
179
+ assert_equal 'assets', JSON.parse(result.map)['sourceRoot']
176
180
  end
177
181
  end
178
182
  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.6.0
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - なつき
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-28 00:00:00.000000000 Z
11
+ date: 2021-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -178,7 +178,7 @@ files:
178
178
  - test/render_test.rb
179
179
  - test/source_maps_test.rb
180
180
  - test/test_helper.rb
181
- homepage: https://github.com/ntkme/embedded-host-ruby
181
+ homepage: https://github.com/ntkme/sass-embedded-host-ruby
182
182
  licenses:
183
183
  - MIT
184
184
  metadata: {}