Mega Code Archive

 
Categories / Ruby / Design Patterns
 

Classes as Singletons

class ClassBasedLogger   ERROR = 1   WARNING = 2   INFO = 3   @@log = File.open('log.txt', 'w')   @@level = WARNING   def self.error(msg)     @@log.puts(msg)     @@log.flush   end   def self.warning(msg)     @@log.puts(msg) if @@level >= WARNING     @@log.flush   end   def self.info(msg)     @@log.puts(msg) if @@level >= INFO     @@log.flush   end   def self.level=(new_level)     @@level = new_level   end   def self.level     @@level   end end ClassBasedLogger.level = ClassBasedLogger::INFO ClassBasedLogger.info('A') ClassBasedLogger.warning('B') ClassBasedLogger.error('C')