deadfire 0.1.0 → 0.2.0

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: 4b22d5497d512927d87bb9f0d4166b055281e8c684188b14b2c03b4052256fe0
4
- data.tar.gz: c50413354b6e0504777d2111bf83a9f5e39a97f64f2fa14b292fd0277128f7be
3
+ metadata.gz: 681339c949e040e68156a6f391c2a0cb87a50fa84e7cff27e3d8dfe7e746b61a
4
+ data.tar.gz: 952f7522e6034261f9dd2b7912deea46fa92e43a068fa53b6ff2658db8e0cd36
5
5
  SHA512:
6
- metadata.gz: 922f9283b553c8c6f92d4e8de65362f1d75b29e028b5a18ab3444e2727cbc09295c176ec5b0359d879dd11a5f942e626ab9256d1cb2f4c0f39c9c13200aca06f
7
- data.tar.gz: 1bb7bbae48bd1e170c036ad176d3f0dd22b5546b87b2ec874f1fa9d0820b1ba23c7cdd2096caac8673be42d32be4e14063ae44d79d7fc66134d670b41ccc56e7
6
+ metadata.gz: 7b72cecd27d13dfbcb84f1c06b19b4a0ef615df59d5cba0a4ffa544e423660dc24f8b445e9b92ef06f58fc71ef12140867e5c0fd4e45d9cbf28dd9fae15b64f6
7
+ data.tar.gz: 4c81de35669b3e560d8ee5103cd94a2ba45f703b27c64b1c5a26dc46dfefd35ac1f0825c26667b7d8c3e76ee27df0764dad571ddc0c4d652e88228cd494921d1
@@ -6,9 +6,9 @@ jobs:
6
6
  strategy:
7
7
  fail-fast: false
8
8
  matrix:
9
- ruby: [head, 3, 2.7]
9
+ ruby: [head, 3.1, 3.0, 2.7]
10
10
  steps:
11
- - uses: actions/checkout@v2
11
+ - uses: actions/checkout@v3
12
12
  - name: Set up Ruby
13
13
  uses: ruby/setup-ruby@v1
14
14
  with:
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- deadfire (0.1.0)
4
+ deadfire (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -2,9 +2,36 @@
2
2
  require "stringio"
3
3
 
4
4
  module Deadfire
5
- class CssBuffer < StringIO
5
+ class CssBuffer
6
+ attr_reader :lineno, :buffer
7
+
6
8
  def initialize(content)
7
- super(content)
9
+ @content = StringIO.new(content)
10
+ @buffer = []
11
+ @lineno = 0
12
+ end
13
+
14
+ def gets(skip_buffer: false)
15
+ output = content.gets
16
+ if output && !skip_buffer
17
+ buffer << output
18
+ end
19
+ @lineno += 1
20
+ output
21
+ end
22
+
23
+ def peek
24
+ output = content.gets
25
+ content.ungetc(output)
26
+ output
8
27
  end
28
+
29
+ def eof?
30
+ content.eof?
31
+ end
32
+
33
+ private
34
+
35
+ attr_reader :content
9
36
  end
10
- end
37
+ end
@@ -202,21 +202,29 @@ module Deadfire
202
202
  line = content.dup.strip
203
203
  @block_names << find_block_name(@output, @lineno)
204
204
  tmp = []
205
-
206
- add_end_block_when_no_end_block_on_prev_line(arr: tmp)
205
+
207
206
  while @nested_level > 0 || !@buffer.eof?
208
207
  spaces = calculate_spaces_to_add(line)
208
+
209
209
  if line.start_with?(NEST_SELECTOR)
210
- add_end_block_when_no_end_block_on_prev_line(arr: tmp) if @nested_level > 0
210
+ add_end_block_when_no_end_block_on_prev_line(arr: tmp)
211
211
  add_selector_to_block_name(line)
212
212
  @nested_level += 1
213
213
  tmp << rewrite_line(spaces, line, @block_names[0...-1].join(" "))
214
- remove_last_block_name_entry if line.end_with?(END_BLOCK_CHAR)
215
214
  else
216
- remove_last_block_name_entry if line.end_with?(END_BLOCK_CHAR)
217
215
  tmp << "#{spaces}#{line.lstrip}"
218
216
  end
219
217
 
218
+ remove_last_block_name_entry if line.end_with?(END_BLOCK_CHAR)
219
+
220
+ if line.end_with?(END_BLOCK_CHAR)
221
+ result = @buffer.peek
222
+ if result.strip == END_BLOCK_CHAR
223
+ @buffer.gets(skip_buffer: true)
224
+ break
225
+ end
226
+ end
227
+
220
228
  line = @buffer.gets
221
229
 
222
230
  if line.nil? || @buffer.eof? || line.empty?
@@ -226,8 +234,7 @@ module Deadfire
226
234
  end
227
235
  end
228
236
 
229
- tmp.pop if tmp[-1] == END_BLOCK_CHAR
230
- tmp.join("\n")
237
+ tmp.join("\n").concat("\n")
231
238
  end
232
239
 
233
240
  private
@@ -270,7 +277,7 @@ module Deadfire
270
277
  when 0
271
278
  line
272
279
  when 1
273
- "#{spaces}#{line.lstrip.gsub("&", selector)}"
280
+ "#{spaces}#{line.strip.gsub("&", selector)}"
274
281
  else
275
282
  line.strip.each_char.map do |s|
276
283
  if s == NEST_SELECTOR
@@ -307,7 +314,7 @@ module Deadfire
307
314
 
308
315
  def parse
309
316
  while ! buffer.eof?
310
- process_line(buffer.readline)
317
+ process_line(buffer.gets)
311
318
  end
312
319
 
313
320
  @output << NEWLINE
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Deadfire
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deadfire
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Haroon Ahmed
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-17 00:00:00.000000000 Z
11
+ date: 2022-10-25 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: