From e0b4782639cbd541bfc5dd34bb30eb7e2a704d55 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Tue, 29 Oct 2024 00:02:02 +1300 Subject: [PATCH] Invoke close_write(error) if possible. --- lib/xrb/template.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/xrb/template.rb b/lib/xrb/template.rb index ebf3a32..b5ec2e1 100644 --- a/lib/xrb/template.rb +++ b/lib/xrb/template.rb @@ -119,6 +119,16 @@ def to_buffer(scope) def to_proc(scope = @binding.dup) proc do |output| to_string(scope, output) + rescue => error + raise + ensure + if output.respond_to?(:close_write) + if output.method(:close_write).arity == 1 + output.close_write(error) + else + output.close_write + end + end end end