From: aidy Date: 2008-04-17T20:25:15+09:00 Subject: global.escape? Hi, I have a logger class wrapped up a module as not to conflict with the Ruby logger class module Utilities class Logger require "rexml/document" include REXML def initialize @doc = Document.new xmldecl = XMLDecl.default @doc.add(xmldecl) @root = @doc.add_element 'testresults' end def test_case(test_name, test_desc) @test = @root.add_element 'test' @test.attributes["id"] = test_name des= @test.add_element 'description' des.text = test_desc end #cannot have a test result without a test case def test_results(msg) if yield test_status = @test.add_element 'teststatus' test_status.text = 'PASS' else fail = @test.add_element 'teststatus' fail.text = 'FAIL' fail_msg = @test.add_element 'failmessage' fail_msg.text = msg end end def write_xml_to_file(file_name="C:/test_results.xml") @doc.write($stdout, 1) @doc.write(File.open(file_name,"w")) end end end I use this logger in various classes and modules, and I feel ashamed by using a global variable $log = Utilities::Logger.new I have tried using an attr_reader on @root without success. Is there anyway I can use this class in my project without using a global? Regards Aidy