Class: Lumberjack::Formatter::IdFormatter
- Inherits:
-
Object
- Object
- Lumberjack::Formatter::IdFormatter
- Defined in:
- lib/lumberjack/formatter/id_formatter.rb
Overview
Format an object that has an id as a hash with keys for class and id. This formatter is useful as a default formatter for objects pulled from a data store. By default it will use :id as the id attribute.
The formatter creates a standardized representation of objects by extracting their class name and identifier, making it easy to identify objects in logs without exposing all their data. This is particularly useful for ActiveRecord models, database objects, or any objects that have a unique identifier attribute.
Instance Method Summary collapse
-
#call(obj) ⇒ Hash, String
Format an object by extracting its class name and ID attribute.
-
#initialize(id_attribute = :id) ⇒ IdFormatter
constructor
A new instance of IdFormatter.
Constructor Details
#initialize(id_attribute = :id) ⇒ IdFormatter
Returns a new instance of IdFormatter.
17 18 19 |
# File 'lib/lumberjack/formatter/id_formatter.rb', line 17 def initialize(id_attribute = :id) @id_attribute = id_attribute end |
Instance Method Details
#call(obj) ⇒ Hash, String
Format an object by extracting its class name and ID attribute.
26 27 28 29 30 31 32 33 |
# File 'lib/lumberjack/formatter/id_formatter.rb', line 26 def call(obj) if obj.respond_to?(@id_attribute) id = obj.send(@id_attribute) {"class" => obj.class.name, "id" => id} else obj.to_s end end |