rebundler 0.3.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa77336a2666fe374595f649959ec9a0ad40f390e21c55d8591a65c5e2561d5e
4
- data.tar.gz: d6972a708a8e5c2e79b36c2d8fc384d6f287d691c4cac286e7aa5150fb3a380d
3
+ metadata.gz: 3a699f86063d76f1777e967eb5aa993fe2d65c355812dbd50ec4a599653bac37
4
+ data.tar.gz: b1724cdc2493ef5745b23acac611c4a820fce04afaff0b0e7983085a291639e1
5
5
  SHA512:
6
- metadata.gz: de9facad64186665e93e445f39d97296046bad9a66c8d3c0a12cf5b9e2fc824609628d85c8ae414a947e81e8e3c1c282f6ab70c93648185eb34bf7c4085fcb5f
7
- data.tar.gz: ac8700216a87393b021a8d3fa6da313473e810945da8d990c1b562cae6ce6e038edc9e674d9a69782c73fafac23201072935359dd837c231f52588c50c35f913
6
+ metadata.gz: a8be976be4c69cba77b1d4a031adfefb52917637693f6ebd2f64307df602d397904f1c1f38321ac0b7c1c8225374550da3e79b8242b37ac9311b09334da3daf6
7
+ data.tar.gz: f7eb7094cabef8b94a49a82e5ad7d295da07e8d66a91d6b77bd669c6f04176003acf3594acb058b80258a5632aece21492c88283cb186668b10aa1131c49a316
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.3.1] - 2025-12-19
4
+
5
+ - Fixed bug where comment on last gem in a block was not overwritten.
6
+
3
7
  ## [0.3.0] - 2025-12-18
4
8
 
5
9
  - Add support for tabs instead of spaces.
@@ -3,24 +3,29 @@
3
3
  module Rebundler
4
4
  class Serializer
5
5
  def self.node_to_s(node)
6
- return if node.nil?
6
+ lines = node.location.slice.lines
7
7
 
8
- if node.block && block_given?
9
- indent = detect_indent(node)
10
- indented_content = yield.lines.map { |line| indent + line.lstrip }.join
8
+ # If a block is given, we replace the content of the node's block
9
+ # with the content of the passed block.
10
+ if node.block && block_given? && lines.size > 1
11
+ depth = find_depth(node)
12
+ tab_or_space = find_spacing_character(node)
11
13
 
12
- stripped_block = node.location.slice.gsub(node.block.body.location.slice, "BLOCK")
13
- stripped_block.gsub(/[#{WHITESPACE_CHARACTERS}]*BLOCK/, indented_content)
14
+ indented_content = yield.lines.map { |line| (tab_or_space * depth) + line }.join
15
+
16
+ lines.first + indented_content + "\n" + lines.last
14
17
  else
15
18
  node.location.slice
16
19
  end
17
20
  end
18
21
 
19
- def self.detect_indent(node)
20
- return "" unless node
22
+ def self.find_depth(node)
23
+ node.block.body.location.start_column
24
+ end
21
25
 
22
- second_line = node.location.slice.lines[1]
23
- second_line&.[](/\A[#{WHITESPACE_CHARACTERS}]*/) || " "
26
+ def self.find_spacing_character(node)
27
+ # Assume it's formatted with tabs if there is ANY tab in the whole block of code.
28
+ node.location.slice.include?("\t") ? "\t" : " "
24
29
  end
25
30
  end
26
31
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rebundler
4
- VERSION = "0.3.0"
4
+ VERSION = "0.3.1"
5
5
  end
@@ -1,7 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "forwardable"
4
+
3
5
  module Rebundler
4
6
  class Writer
7
+ extend Forwardable
8
+
9
+ def_delegators :@parser, :preamble_nodes, :gem_sets, :frozen_string_literal
10
+
5
11
  def initialize(parser)
6
12
  @parser = parser
7
13
  end
@@ -35,19 +41,5 @@ module Rebundler
35
41
 
36
42
  buffer.reject(&:empty?).join("\n\n") + "\n"
37
43
  end
38
-
39
- private
40
-
41
- def preamble_nodes
42
- @parser.preamble_nodes
43
- end
44
-
45
- def gem_sets
46
- @parser.gem_sets
47
- end
48
-
49
- def frozen_string_literal
50
- @parser.frozen_string_literal
51
- end
52
44
  end
53
45
  end
data/lib/rebundler.rb CHANGED
@@ -8,8 +8,6 @@ loader.setup
8
8
  module Rebundler
9
9
  class Error < StandardError; end
10
10
 
11
- WHITESPACE_CHARACTERS = [" ", "\t"].join.freeze
12
-
13
11
  SORTABLE_NODES = %i[plugin gem].freeze
14
12
  BLOCK_NODES = %i[gemspec git group path platforms ruby source].freeze
15
13
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rebundler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Paagman