[rubygems/rubygems] Use a constant empty tar header to avoid extra allocations
[ruby.git] / lib / rdoc / erbio.rb
blob0f98eaedeef31340ba20524b38b8fbce9d154d55
1 # frozen_string_literal: true
2 require 'erb'
4 ##
5 # A subclass of ERB that writes directly to an IO.  Credit to Aaron Patterson
6 # and Masatoshi SEKI.
8 # To use:
10 #   erbio = RDoc::ERBIO.new '<%= "hello world" %>', nil, nil
12 #   File.open 'hello.txt', 'w' do |io|
13 #     erbio.result binding
14 #   end
16 # Note that binding must enclose the io you wish to output on.
18 class RDoc::ERBIO < ERB
20   ##
21   # Defaults +eoutvar+ to 'io', otherwise is identical to ERB's initialize
23   def initialize str, trim_mode: nil, eoutvar: 'io'
24     super(str, trim_mode: trim_mode, eoutvar: eoutvar)
25   end
27   ##
28   # Instructs +compiler+ how to write to +io_variable+
30   def set_eoutvar compiler, io_variable
31     compiler.put_cmd    = "#{io_variable}.write"
32     compiler.insert_cmd = "#{io_variable}.write"
33     compiler.pre_cmd    = []
34     compiler.post_cmd   = []
35   end
37 end