class RDoc::ERBIO

A subclass of ERB that writes directly to an IO. Credit to Aaron Patterson and Masatoshi SEKI.

To use:

erbio = RDoc::ERBIO.new '<%= "hello world" %>', nil, nil

File.open 'hello.txt', 'w' do |io|
  erbio.result binding
end

Note that binding must enclose the io you wish to output on.

Public Class Methods

new (str, trim_mode: nil, eoutvar: 'io')

Defaults eoutvar to ‘io’, otherwise is identical to ERB’s initialize

Calls superclass method ERB::new
# File lib/rdoc/erbio.rb, line 23
def initialize str, trim_mode: nil, eoutvar: 'io'
  super(str, trim_mode: trim_mode, eoutvar: eoutvar)
end

Public Instance Methods

set_eoutvar (compiler, io_variable)

Instructs compiler how to write to io_variable

# File lib/rdoc/erbio.rb, line 30
def set_eoutvar compiler, io_variable
  compiler.put_cmd    = "#{io_variable}.write"
  compiler.insert_cmd = "#{io_variable}.write"
  compiler.pre_cmd    = []
  compiler.post_cmd   = []
end