class Lumberjack::Formatter
def add(klass, formatter = nil, *args, &block)
-
(self)
- Returns itself so that add statements can be chained together.
Other tags:
- Yieldreturn: - The formatted string.
Other tags:
- Yieldparam: obj - The object to format.
Other tags:
- Yield: - A block that will be used as the formatter for the class.
Parameters:
-
args
(Array
) -- Arguments to pass to the formatter when it is initialized. -
formatter
(Symbol, Class, String, #call
) -- The formatter to use for the class. -
klass
(Class, Module, String, Array
) -- The class or module to add a formatter for.
def add(klass, formatter = nil, *args, &block) formatter ||= block if formatter.nil? remove(klass) else formatter_class_name = nil if formatter.is_a?(Symbol) formatter_class_name = "#{formatter.to_s.gsub(/(^|_)([a-z])/) { |m| $~[2].upcase }}Formatter" elsif formatter.is_a?(String) formatter_class_name = formatter end if formatter_class_name formatter = Formatter.const_get(formatter_class_name) end if formatter.is_a?(Class) formatter = formatter.new(*args) end Array(klass).each do |k| if k.instance_of?(Module) @module_formatters[k] = formatter else k = k.name if k.is_a?(Class) @class_formatters[k] = formatter end end end self end