[ruby/yarp] Template out a comment_targets method

a94af7c4c8
This commit is contained in:
Kevin Newton 2023-09-08 14:33:21 -04:00 committed by git
parent 5d73c0f3df
commit c0f162caab
3 changed files with 16 additions and 9 deletions

View file

@ -100,9 +100,7 @@ module YARP
comment_end = comment.location.end_offset
targets = []
node.deconstruct_keys(nil).each do |key, value|
next if key == :location
node.comment_targets.map do |value|
case value
when StatementsNode
targets.concat(value.body.map { |node| NodeTarget.new(node) })
@ -110,8 +108,6 @@ module YARP
targets << NodeTarget.new(value)
when Location
targets << LocationTarget.new(value)
when Array
targets.concat(value.map { |node| NodeTarget.new(node) }) if value.first.is_a?(Node)
end
end
@ -166,6 +162,8 @@ module YARP
end
end
private_constant :Comments
# Attach the list of comments to their respective locations in the tree.
def attach_comments!
Comments.new(self).attach!