Class: Fluent::Auditify::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/fluent/auditify/registry.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(kind, prefix) ⇒ Registry

Returns a new instance of Registry.



9
10
11
12
13
14
# File 'lib/fluent/auditify/registry.rb', line 9

def initialize(kind, prefix)
  @kind = kind
  # e.g. lib/fluent/auditify/conf_
  @search_prefix = prefix
  @map = {}
end

Instance Attribute Details

#mapObject (readonly)

Returns the value of attribute map.



7
8
9
# File 'lib/fluent/auditify/registry.rb', line 7

def map
  @map
end

Instance Method Details

#lookup(name) ⇒ Class

Returns the object which inherit from Fluent::Auditify::Plugin.

Parameters:

  • name (String)

    plugin name

Returns:

  • (Class)

    the object which inherit from Fluent::Auditify::Plugin

Raises:

  • (NotFoundPluginError)


18
19
20
21
22
# File 'lib/fluent/auditify/registry.rb', line 18

def lookup(name)
  sym = "#{@kind}/#{name}".to_sym
  return @map[sym] if @map[sym]
  raise NotFoundPluginError.new("Unknown #{@kind} plugin", name: name)
end

#register(kind, plugin_name, plugin_klass) ⇒ Object

Parameters:

  • plugin_name (String)

    plugin name without plugin type prefix

  • plugin_klass (Class)

    inherit from Fluent::Auditify::Plugin



26
27
28
29
30
31
32
# File 'lib/fluent/auditify/registry.rb', line 26

def register(kind, plugin_name, plugin_klass)
  sym = "#{kind}/#{plugin_name}".to_sym
  if @map.key?(sym)
    raise DuplicatedPluginError.new("#{sym} is already registered")
  end
  @map[sym] = plugin_klass
end