Class: Makit::Logging::FormatRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/makit/logging/format_registry.rb

Overview

Registry for managing available log formatters

Provides a centralized way to register, retrieve, and manage formatters by name. This allows for easy extension and configuration of formatters.

Examples:

Registering a custom formatter

FormatRegistry.register(:audit, AuditFormatter)
formatter = FormatRegistry.get(:audit).new

Using built-in formatters

formatter = FormatRegistry.get(:json).new
formatter = FormatRegistry.get(:text).new(timestamp_format: "%H:%M:%S")

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.formattersHash (readonly)

Returns registered formatters.

Returns:

  • (Hash)

    registered formatters



22
23
24
# File 'lib/makit/logging/format_registry.rb', line 22

def formatters
  @formatters
end

Class Method Details

.available_formatsArray<Symbol>

Get all available formatter names

Returns:

  • (Array<Symbol>)

    list of registered formatter names



45
46
47
# File 'lib/makit/logging/format_registry.rb', line 45

def available_formats
  @formatters.keys
end

.clearvoid

This method returns an undefined value.

Clear all registered formatters



60
61
62
# File 'lib/makit/logging/format_registry.rb', line 60

def clear
  @formatters.clear
end

.get(name) ⇒ Class

Get a formatter class by name

Parameters:

  • name (Symbol, String)

    the name of the formatter

Returns:

  • (Class)

    the formatter class

Raises:

  • (ArgumentError)

    if formatter is not found



38
39
40
# File 'lib/makit/logging/format_registry.rb', line 38

def get(name)
  @formatters[name.to_sym] || raise(ArgumentError, "Unknown formatter: #{name}")
end

.register(name, formatter_class) ⇒ void

This method returns an undefined value.

Register a formatter class with a name

Parameters:

  • name (Symbol, String)

    the name to register the formatter under

  • formatter_class (Class)

    the formatter class to register



29
30
31
# File 'lib/makit/logging/format_registry.rb', line 29

def register(name, formatter_class)
  @formatters[name.to_sym] = formatter_class
end

.register_built_insvoid

This method returns an undefined value.

Register built-in formatters



67
68
69
70
71
72
73
74
75
76
77
# File 'lib/makit/logging/format_registry.rb', line 67

def register_built_ins
  require_relative "formatters/json_formatter"
  require_relative "formatters/text_formatter"
  require_relative "formatters/plain_text_formatter"
  require_relative "formatters/console_formatter"

  register(:json, Formatters::JsonFormatter)
  register(:text, Formatters::TextFormatter)
  register(:plain, Formatters::PlainTextFormatter)
  register(:console, Formatters::ConsoleFormatter)
end

.registered?(name) ⇒ Boolean

Check if a formatter is registered

Parameters:

  • name (Symbol, String)

    the name to check

Returns:

  • (Boolean)

    true if formatter is registered



53
54
55
# File 'lib/makit/logging/format_registry.rb', line 53

def registered?(name)
  @formatters.key?(name.to_sym)
end