Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions script/update-docs.rb
Original file line number Diff line number Diff line change
Expand Up @@ -81,12 +81,14 @@ def wrap_front_matter(front_matter)
end

def expand_l10n(path, content, get_f_content, categories, ext)
content.gsub!(/include::({build_dir}\/)?(\S+)\.#{ext}/) do |line|
line.gsub!("include::", "")
if categories[line]
new_content = categories[line]
content.gsub!(/include::({build_dir}\/)?(\S+)\.#{ext}/) do
match = Regexp.last_match

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couldn't this be done more elegantly via |_, build_dir, path|? (I don't know, I'm no longer fluent in Ruby.)

target = "#{match[2]}.#{ext}"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not extend the regular expression's second group so that target = match[2] is correct?

base = match[1] ? path.split("/", 2).first : File.dirname(path)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How certain can we be that path.split("/", 2) is correct? Are there no subdirectories possible? I am thinking of /path/to/build-dir/Documentation/technical/*, where care needs to be applied to determine the correct replacement for {build_dir}/.

if categories[target]
new_content = categories[target]
else
new_content, new_path = get_f_content.call(path, line)
new_content, new_path = get_f_content.call(base, target)
end
if new_content
expand_l10n(new_path, new_content, get_f_content, categories, ext)
Expand Down Expand Up @@ -230,8 +232,8 @@ def index_l10n_doc(filter_tags, doc_list, get_content)

puts "Found #{doc_files.size} entries"

get_content_f = proc do |source, target|
name = File.join(File.dirname(source), target)
get_content_f = proc do |base, target|
Comment on lines -233 to +235

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The rename makes it unnecessarily hard to spot the actual functional change: removing the File.dirname(). And without an adequate explanation in the commit message, the cognitive load required to review this change is sub-optimally big. Please fix that.

name = File.join(base, target)
content_file = tag_files.detect { |ent| ent.first == name }
if content_file
new_content = get_content.call(content_file[1])
Expand Down
Loading