module Skylight::Core::Normalizers

@api private Convert AS::N events to Skylight events

Constants

DEFAULT

Public Class Methods

build(config) click to toggle source
# File lib/skylight/core/normalizers.rb, line 34
def self.build(config)
  normalizers = {}

  registry.each do |key, (klass, enabled)|
    next unless enabled

    unless klass.method_defined?(:normalize)
      # TODO: Warn
      next
    end

    normalizers[key] = klass.new(config)
  end

  Container.new(normalizers)
end
disable(*names) click to toggle source
# File lib/skylight/core/normalizers.rb, line 30
def self.disable(*names)
  enable(*names, enabled: false)
end
enable(*names, enabled: true) click to toggle source
# File lib/skylight/core/normalizers.rb, line 22
def self.enable(*names, enabled: true)
  names.each do |name|
    matches = registry.select { |n, _| n =~ /(^|\.)#{name}$/ }
    raise ArgumentError, "no normalizers match #{name}" if matches.empty?
    matches.values.each { |v| v[1] = enabled }
  end
end
register(name, klass, opts = {}) click to toggle source
# File lib/skylight/core/normalizers.rb, line 13
def self.register(name, klass, opts = {})
  enabled = opts[:enabled] != false
  registry[name] = [klass, enabled]
end
registry() click to toggle source
# File lib/skylight/core/normalizers.rb, line 9
def self.registry
  @registry ||= {}
end
unregister(name) click to toggle source
# File lib/skylight/core/normalizers.rb, line 18
def self.unregister(name)
  @registry.delete(name)
end