Module: LogBuddy

Extended by:
Utils
Defined in:
lib/log_buddy.rb,
lib/log_buddy/mixin.rb,
lib/log_buddy/utils.rb,
lib/log_buddy/version.rb

Overview

LogBuddy is a developer tool for easy logging while testing, debugging, and inspecting.

The d log method to give you easy, concise output of variables with their names and values.

Requiring 'log_buddy' will automatically mixin the d method into Object. You can avoid this behavior by setting SAFE_LOG_BUDDY to true in your environment before requiring LogBuddy.

Examples:

a = "foo"
@a = "my var"
def bark
 "woof!"
end

d { a }      # logs "a = 'foo'"
d { @a }     # logs "@a = 'my var'"
d { bark }   # logs "bark = woof!"

Defined Under Namespace

Modules: Mixin, Utils, Version

Class Method Summary collapse

Methods included from Utils

arg_and_blk_debug, debug, obj_to_string, parse_args, read_line, stdout_puts

Class Method Details

.init(options = {}) ⇒ Object

Configure and include LogBuddy into Object. You can pass in any of the following configuration options:

  • :logger - the logger instance that LogBuddy should use (if not provided, tries to default to RAILS_DEFAULT_LOGGER, and then to a STDOUT logger).

  • <tt):log_to_stdout</tt> - whether LogBuddy should also log to STDOUT, very helpful for Autotest (default is true).

  • :disabled - when true, LogBuddy will not produce any output


33
34
35
36
37
38
# File 'lib/log_buddy.rb', line 33

def self.init(options = {})
  @logger = options[:logger]
  @log_to_stdout = options.has_key?(:log_to_stdout) ? options[:log_to_stdout] : true
  @disabled = (options[:disabled] == true)
  mixin_to_object
end

.log_to_stdout?Boolean

Returns:

  • (Boolean)

55
56
57
# File 'lib/log_buddy.rb', line 55

def log_to_stdout?
  @log_to_stdout
end

.loggerObject


50
51
52
53
# File 'lib/log_buddy.rb', line 50

def logger
  return @logger if @logger
  @logger = init_default_logger
end

.mixin_to_objectObject

Add the LogBuddy::Mixin to Object instance and class level.


41
42
43
44
45
46
# File 'lib/log_buddy.rb', line 41

def self.mixin_to_object
  Object.class_eval { 
    include LogBuddy::Mixin
    extend LogBuddy::Mixin
  }
end