syntax_tree-haml 4.0.2 → 4.0.3

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: b926fc681f1792de33a0ab58885860f06337de292164185fd9d0cf86ff80da90
4
- data.tar.gz: a09512989ef9b799975ec639ddbaa5fc65bddd76b0cdc9719b309372a5a4cb71
3
+ metadata.gz: c410fddce7b0b3de3dca5f4f0ff6f1f495f70897d1a07f956ceb3cedb8a3bc42
4
+ data.tar.gz: 6f4866aefe38f780411b65fa2671a9f9491aba0249884dc6c6f627d1a76f5520
5
5
  SHA512:
6
- metadata.gz: a07aea76babd7c8a4c765749b3107c0dd3a904ced2550ddb15ea85cfaa6d3df12f6d20767c855eede216d54fdf844e41b00efcf186b9b44409510236823d58ae
7
- data.tar.gz: 108994617aba53d1eb5758d563c3a5b96f65551ec7a0af9e66862f9c8e26c77232f4eb3bc727d9711f7da78f32d91d91adff3a0152ea6b35d7098a5c14d4fabd
6
+ metadata.gz: b79312706a5519a3d6933040c99f353ca344290d9c026d27ee2b6aa5b092ef8f03e735ae5e0de4b832bf7acbdceeceb844bdb9ca46ddd1b6aa9ea3f8c1d37cbc
7
+ data.tar.gz: e0993ba8112bb8149cbcaf972ba588e2b347431254bf0d3d0a63482657d18d5f70af4aa58f185b9d696d5c028bae55621cb483ad9800474242c2236be3043e98
data/CHANGELOG.md CHANGED
@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [4.0.3] - 2023-03-12
10
+
11
+ ### Changed
12
+
13
+ - Fixed a bug where blank lines were being inserted into filter nodes accidentally.
14
+
9
15
  ## [4.0.2] - 2023-03-09
10
16
 
11
17
  ### Changed
@@ -100,7 +106,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
100
106
 
101
107
  - 🎉 Initial release! 🎉
102
108
 
103
- [unreleased]: https://github.com/ruby-syntax-tree/syntax_tree-haml/compare/v4.0.2...HEAD
109
+ [unreleased]: https://github.com/ruby-syntax-tree/syntax_tree-haml/compare/v4.0.3...HEAD
110
+ [4.0.3]: https://github.com/ruby-syntax-tree/syntax_tree-haml/compare/v4.0.2...v4.0.3
104
111
  [4.0.2]: https://github.com/ruby-syntax-tree/syntax_tree-haml/compare/v4.0.1...v4.0.2
105
112
  [4.0.1]: https://github.com/ruby-syntax-tree/syntax_tree-haml/compare/v4.0.0...v4.0.1
106
113
  [4.0.0]: https://github.com/ruby-syntax-tree/syntax_tree-haml/compare/v3.0.0...v4.0.0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- syntax_tree-haml (4.0.2)
4
+ syntax_tree-haml (4.0.3)
5
5
  haml (>= 5.2)
6
6
  prettier_print (>= 1.2.1)
7
7
  syntax_tree (>= 6.0.0)
@@ -69,15 +69,17 @@ module SyntaxTree
69
69
  q.breakable_force
70
70
  first = true
71
71
 
72
- node.value[:text].each_line(chomp: true) do |line|
73
- if first
74
- first = false
75
- else
76
- q.breakable_force
77
- end
72
+ node.value[:text]
73
+ .rstrip
74
+ .each_line(chomp: true) do |line|
75
+ if first
76
+ first = false
77
+ else
78
+ q.breakable_force
79
+ end
78
80
 
79
- q.text(line)
80
- end
81
+ q.text(line)
82
+ end
81
83
  end
82
84
  end
83
85
  end
@@ -124,8 +126,7 @@ module SyntaxTree
124
126
 
125
127
  node.children.each do |child|
126
128
  q.breakable_force if previous_line && (child.line - previous_line) > 1
127
- previous_line =
128
- child.children.any? ? child.children.last.line : child.line
129
+ previous_line = child.last_line
129
130
 
130
131
  visit(child)
131
132
  q.breakable_force
@@ -513,10 +514,8 @@ module SyntaxTree
513
514
  q.breakable_force
514
515
  end
515
516
 
516
- previous_line =
517
- child.children.any? ? child.children.last.line : child.line
518
-
519
517
  visit(child)
518
+ previous_line = child.last_line
520
519
  end
521
520
  end
522
521
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module SyntaxTree
4
4
  module Haml
5
- VERSION = "4.0.2"
5
+ VERSION = "4.0.3"
6
6
  end
7
7
  end
@@ -82,10 +82,30 @@ class Haml::Parser::ParseNode
82
82
  end
83
83
  end
84
84
 
85
+ # This is our entrypoint for the formatter. We effectively delegate this to
86
+ # accepting the Format visitor.
85
87
  def format(q)
86
88
  accept(SyntaxTree::Haml::Format.new(q))
87
89
  end
88
90
 
91
+ # When we're formatting a list of children, we need to know the last line a
92
+ # node is on. This is because the next node in the list of children should be
93
+ # at most 1 blank line below the last line of the previous node. We cache this
94
+ # because at worst it requires walking the entire tree because filter nodes
95
+ # can take up multiple lines.
96
+ def last_line
97
+ @last_line ||=
98
+ if children.any?
99
+ children.last.last_line
100
+ elsif type == :filter
101
+ line + value[:text].rstrip.count("\n") + 1
102
+ else
103
+ line
104
+ end
105
+ end
106
+
107
+ # This is our entrypoint for the pretty printer. We effectively delegate this
108
+ # to accepting the PrettyPrint visitor.
89
109
  def pretty_print(q)
90
110
  accept(SyntaxTree::Haml::PrettyPrint.new(q))
91
111
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syntax_tree-haml
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.2
4
+ version: 4.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Newton
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-09 00:00:00.000000000 Z
11
+ date: 2023-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: haml