Module: Bootprint::Plugins

Defined in:
lib/bootprint/plugins.rb

Defined Under Namespace

Classes: Definition

Class Method Summary collapse

Class Method Details

.allObject



62
# File 'lib/bootprint/plugins.rb', line 62

def all = registry.dup

.capture(warnings:, strict: false) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/bootprint/plugins.rb', line 45

def capture(warnings:, strict: false)
  registry.each_with_object({}) do |plugin, result|
    if plugin.registration_error
      handle_failure(plugin, plugin.registration_error, warnings, strict)
      next
    end
    next unless plugin.collector_class

    begin
      value = plugin.collector_class.respond_to?(:capture) ? plugin.collector_class.capture : plugin.collector_class.new.capture
      result[plugin.name] = Sanitizer.recursive(Schema.stringify(value))
    rescue StandardError => error
      handle_failure(plugin, "#{error.class}: #{error.message}", warnings, strict)
    end
  end
end

.register(name) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/bootprint/plugins.rb', line 31

def register(name, &)
  definition = Definition.new(name: name.to_s)
  definition.instance_eval(&)
  install_rules(definition)
  registry.reject! { |plugin| plugin.name == definition.name }
  registry << definition
  definition
rescue StandardError => error
  definition ||= Definition.new(name: name.to_s)
  definition.registration_error = Sanitizer.text("#{error.class}: #{error.message}")
  registry << definition
  definition
end

.reset!Object



63
# File 'lib/bootprint/plugins.rb', line 63

def reset! = @registry = []