Class: JsonTaggedLogger::LogTagsConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/json_tagged_logger/log_tags_config.rb

Class Method Summary collapse

Class Method Details

.generate(*tags) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/json_tagged_logger/log_tags_config.rb', line 5

def self.generate(*tags)
  tags.map do |tag|
    if tag.is_a?(String)
      tag
    elsif tag.is_a?(Proc) && tag.arity == 1
      tag
    elsif tag.is_a?(Symbol) && ActionDispatch::Request.method_defined?(tag)
      -> (request) { { tag => request.send(tag) }.to_json }
    else
      raise ArgumentError, "Only strings, symbols that ActionDispatch::Request responds to or single-argument Procs allowed. You provided '#{tag.inspect}'."
    end
  end
end