summaryrefslogtreecommitdiff
path: root/tool/update-NEWS-refs.rb
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-12-21 12:52:44 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-12-21 20:48:51 +0900
commitbefc99c00813568973a6330b2101e27184aab509 (patch)
tree17067dfcd92ecd0c71aa06c80329a1270bb16fbf /tool/update-NEWS-refs.rb
parentc7c006cc68573cea356253cb1cc2c428d83fdf6c (diff)
downloadruby-befc99c00813568973a6330b2101e27184aab509.tar.gz
[DOC] tool/update-NEWS-refs.rb: Align footnotes
Diffstat (limited to 'tool/update-NEWS-refs.rb')
-rw-r--r--tool/update-NEWS-refs.rb16
1 files changed, 7 insertions, 9 deletions
diff --git a/tool/update-NEWS-refs.rb b/tool/update-NEWS-refs.rb
index 5076c6ec0a..2b19f0fdaa 100644
--- a/tool/update-NEWS-refs.rb
+++ b/tool/update-NEWS-refs.rb
@@ -4,8 +4,9 @@ orig_src = File.read(File.join(__dir__, "../NEWS.md"))
lines = orig_src.lines(chomp: true)
links = {}
-while lines.last =~ %r{\A\[(.*?)\]:\s+(?:.*)\z}
- links[$1] = lines.pop
+while lines.last =~ %r{\A\[(.*?)\]:\s+(.*)\z}
+ links[$1] = $2
+ lines.pop
end
if links.empty? || lines.last != ""
@@ -14,20 +15,17 @@ end
labels = links.keys.select {|k| !(k.start_with?("Feature") || k.start_with?("Bug"))}
new_src = lines.join("\n").gsub(/\[?\[((?:Feature|Bug)\s+#(\d+))\]\]?/) do
- links[$1] ||= "[#$1]: ".ljust(18) + "https://bugs.ruby-lang.org/issues/#$2"
+ links[$1] ||= "https://bugs.ruby-lang.org/issues/#$2"
"[[#$1]]"
end.gsub(/\[\[#{Regexp.union(labels)}\]\]?/) do
"[#$1]"
end.chomp + "\n\n"
+label_width = links.max_by {|k, _| k.size}.first.size + 4
redmine_links, non_redmine_links = links.partition {|k,| k =~ /\A(Feature|Bug)\s+#\d+\z/ }
-redmine_links.sort_by {|k,| k[/\d+/].to_i }.each do |_k, v|
- new_src << v << "\n"
-end
-
-non_redmine_links.reverse_each do |_k, v|
- new_src << v << "\n"
+(redmine_links.sort_by {|k,| k[/\d+/].to_i } + non_redmine_links.reverse).each do |k, v|
+ new_src << "[#{k}]:".ljust(label_width) << v << "\n"
end
if orig_src != new_src