summaryrefslogtreecommitdiff
path: root/lib/asciidoctor/interdoc_reftext/resolver.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/asciidoctor/interdoc_reftext/resolver.rb')
-rw-r--r--lib/asciidoctor/interdoc_reftext/resolver.rb11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/asciidoctor/interdoc_reftext/resolver.rb b/lib/asciidoctor/interdoc_reftext/resolver.rb
index 0da8511..e4a8eef 100644
--- a/lib/asciidoctor/interdoc_reftext/resolver.rb
+++ b/lib/asciidoctor/interdoc_reftext/resolver.rb
@@ -48,8 +48,9 @@ module Asciidoctor::InterdocReftext
path = resolve_target_path(path) or return nil
@cache["#{path}##{fragment}".freeze] ||= begin
- lines = read_file(path) or return nil
- parse_reftext(lines, fragment)
+ read_file(path) do |lines|
+ parse_reftext(lines, fragment)
+ end
rescue => e # rubocop: disable RescueWithoutErrorClass
raise if @raise_exceptions
@logger.error "interdoc-reftext: #{e}"
@@ -93,9 +94,11 @@ module Asciidoctor::InterdocReftext
end
# @param path [String] path of the file to read.
- # @return [Enumerable<String>] lines of the file.
+ # @yield [Enumerable<String>] gives lines of the file.
def read_file(path)
- ::IO.foreach(path)
+ ::File.open(path) do |f|
+ yield f.each_line
+ end
end
# @param input [Enumerable<String>] lines of the AsciiDoc document.