# -*- coding: utf-8 -*-
# Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>

# Nukes output. Used for example in sourcing where you don't want
# to see output.
# 

require 'rubygems'; require 'require_relative'
require_relative '../io'

class Trepan::OutputNull < Trepan::OutputBase
  def initialize(out, opts={})
    @closed = false
    super
  end
  
  def close
    @closed = true
  end
  
  def closed?
    !!@closed
  end
  
  def flush
  end
  
  # Use this to set where to write to. output can be a 
  # file object or a string. This code raises IOError on error.
  def write(*args)
  end
  
  # used to write to a debugger that is connected to this
  # `str' written will have a newline added to it
  #
  def writeline( msg)
  end
end

# Demo it
if __FILE__ == $0
  output = Trepan::OutputNull.new(nil)
  p output
  output.write("Invisible")
  output.writeline("Invisible")
end
