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 +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/rebundler/serializer.rb +15 -10
- data/lib/rebundler/version.rb +1 -1
- data/lib/rebundler/writer.rb +6 -14
- data/lib/rebundler.rb +0 -2
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3a699f86063d76f1777e967eb5aa993fe2d65c355812dbd50ec4a599653bac37
|
|
4
|
+
data.tar.gz: b1724cdc2493ef5745b23acac611c4a820fce04afaff0b0e7983085a291639e1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a8be976be4c69cba77b1d4a031adfefb52917637693f6ebd2f64307df602d397904f1c1f38321ac0b7c1c8225374550da3e79b8242b37ac9311b09334da3daf6
|
|
7
|
+
data.tar.gz: f7eb7094cabef8b94a49a82e5ad7d295da07e8d66a91d6b77bd669c6f04176003acf3594acb058b80258a5632aece21492c88283cb186668b10aa1131c49a316
|
data/CHANGELOG.md
CHANGED
data/lib/rebundler/serializer.rb
CHANGED
|
@@ -3,24 +3,29 @@
|
|
|
3
3
|
module Rebundler
|
|
4
4
|
class Serializer
|
|
5
5
|
def self.node_to_s(node)
|
|
6
|
-
|
|
6
|
+
lines = node.location.slice.lines
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
13
|
-
|
|
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.
|
|
20
|
-
|
|
22
|
+
def self.find_depth(node)
|
|
23
|
+
node.block.body.location.start_column
|
|
24
|
+
end
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
|
|
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
|
data/lib/rebundler/version.rb
CHANGED
data/lib/rebundler/writer.rb
CHANGED
|
@@ -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