module SemanticLogger::Formatters
def self.factory(formatter)
- Proc
- Instance of any of SemanticLogger::Formatters
- Hash ( Symbol => { options })
- Symbol
Supports formatter supplied as:
Return formatter that responds to call.
def self.factory(formatter) if formatter.is_a?(Symbol) SemanticLogger::Utils.constantize_symbol(formatter, "SemanticLogger::Formatters").new elsif formatter.is_a?(Hash) && formatter.size.positive? fmt, options = formatter.first SemanticLogger::Utils.constantize_symbol(fmt.to_sym, "SemanticLogger::Formatters").new(**options) elsif formatter.respond_to?(:call) formatter else raise(ArgumentError, "Unknown formatter: #{formatter.inspect}") end end