Module: ASIR::Log
Overview
!SLIDE Diagnostic Logging
Logging mixin.
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- @@enabled =
false
Instance Attribute Summary collapse
-
#_logger ⇒ Object
Returns the value of attribute _logger.
Class Method Summary collapse
Instance Method Summary collapse
- #_log(msg = nil) ⇒ Object
- #_log_enabled=(x) ⇒ Object
- #_log_enabled? ⇒ Boolean
- #_log_format(obj) ⇒ Object
- #_log_result(msg) ⇒ Object
Instance Attribute Details
#_logger ⇒ Object
Returns the value of attribute _logger.
7 8 9 |
# File 'lib/asir/log.rb', line 7 def _logger @_logger end |
Class Method Details
.enabled ⇒ Object
15 16 17 |
# File 'lib/asir/log.rb', line 15 def self.enabled @@enabled end |
.enabled=(x) ⇒ Object
18 19 20 |
# File 'lib/asir/log.rb', line 18 def self.enabled= x @@enabled = x end |
.included(target) ⇒ Object
9 10 11 12 |
# File 'lib/asir/log.rb', line 9 def self.included target super target.send(:extend, ClassMethods) end |
Instance Method Details
#_log(msg = nil) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/asir/log.rb', line 41 def _log msg = nil return unless _log_enabled? msg ||= yield if block_given? msg = String === msg ? msg : _log_format(msg) msg = " #{$$} #{Module === self ? self : self.class} #{msg}" case @_logger when Proc @_logger.call msg when IO @_logger.puts msg else $stderr.puts msg end nil end |
#_log_enabled=(x) ⇒ Object
31 32 33 |
# File 'lib/asir/log.rb', line 31 def _log_enabled= x @_log_enabled = x end |
#_log_enabled? ⇒ Boolean
35 36 37 38 39 |
# File 'lib/asir/log.rb', line 35 def _log_enabled? ASIR::Log.enabled || @_log_enabled || self.class._log_enabled? end |
#_log_format(obj) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/asir/log.rb', line 66 def _log_format obj case obj when Exception msg = "#{obj.inspect}" msg << "\n #{obj.backtrace * "\n "}" if false msg when Array obj.map { | x | _log_format x } * ", " else obj.inspect end end |
#_log_result(msg) ⇒ Object
57 58 59 60 61 62 63 64 |
# File 'lib/asir/log.rb', line 57 def _log_result msg _log { msg = String === msg ? msg : _log_format(msg); "#{msg} => ..." } result = yield _log { "#{msg} => \n #{result.inspect}" } result end |