Module: Cogger::Registry

Included in:
Cogger
Defined in:
lib/cogger/registry.rb

Overview

Provides a global regsitry for global configuration.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(descendant) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/cogger/registry.rb', line 8

def self.extended descendant
  descendant.add_alias(:debug, :white)
            .add_alias(:info, :green)
            .add_alias(:warn, :yellow)
            .add_alias(:error, :red)
            .add_alias(:fatal, :bold, :white, :on_red)
            .add_alias(:any, :dim, :bright_white)
            .add_emoji(:debug, "🔎")
            .add_emoji(:info, "🟢")
            .add_emoji(:warn, "⚠️")
            .add_emoji(:error, "🛑")
            .add_emoji(:fatal, "🔥")
            .add_emoji(:any, "⚫️")
            .add_formatter(:color, Cogger::Formatters::Color)
            .add_formatter(
              :detail,
              Cogger::Formatters::Simple,
              "[%<id>s] [%<level>s] [%<at>s] %<message>s"
            )
            .add_formatter(:emoji, Cogger::Formatters::Emoji)
            .add_formatter(:json, Cogger::Formatters::JSON)
            .add_formatter(:simple, Cogger::Formatters::Simple)
            .add_formatter :rack,
                           Cogger::Formatters::Simple,
                           "[%<id>s] [%<level>s] [%<at>s] %<verb>s %<status>s " \
                           "%<duration>s %<ip>s %<path>s %<length>s %<params>s"
end

Instance Method Details

#add_alias(key, *styles) ⇒ Object



36
37
38
39
# File 'lib/cogger/registry.rb', line 36

def add_alias(key, *styles)
  color.add_alias(key, *styles)
  self
end

#add_emoji(key, value) ⇒ Object



43
44
45
46
# File 'lib/cogger/registry.rb', line 43

def add_emoji key, value
  emojis[key.to_sym] = value
  self
end

#add_filter(key) ⇒ Object



54
55
56
57
# File 'lib/cogger/registry.rb', line 54

def add_filter key
  filters.add key.to_sym
  self
end

#add_formatter(key, formatter, template = nil) ⇒ Object



61
62
63
64
# File 'lib/cogger/registry.rb', line 61

def add_formatter key, formatter, template = nil
  formatters[key.to_sym] = [formatter, template]
  self
end

#aliasesObject



41
# File 'lib/cogger/registry.rb', line 41

def aliases = color.aliases

#colorObject



72
# File 'lib/cogger/registry.rb', line 72

def color = @color ||= Tone.new

#defaultsObject



74
# File 'lib/cogger/registry.rb', line 74

def defaults = {emojis:, aliases:, formatters:, filters:, color:}

#emojisObject



52
# File 'lib/cogger/registry.rb', line 52

def emojis = @emojis ||= {}

#filtersObject



59
# File 'lib/cogger/registry.rb', line 59

def filters = @filters ||= Set.new

#formattersObject



70
# File 'lib/cogger/registry.rb', line 70

def formatters = @formatters ||= {}

#get_emoji(key) ⇒ Object



48
49
50
# File 'lib/cogger/registry.rb', line 48

def get_emoji key
  emojis.fetch(key.to_sym) { fail KeyError, "Unregistered emoji: #{key}." }
end

#get_formatter(key) ⇒ Object



66
67
68
# File 'lib/cogger/registry.rb', line 66

def get_formatter key
  formatters.fetch(key.to_sym) { fail KeyError, "Unregistered formatter: #{key}." }
end