module MetricsInflux::Module

Public Class Methods

<<(klass) click to toggle source
# File lib/metrics_influx/module.rb, line 9
def self.<<(klass)
  key = klass.name.split('::')[-1].downcase
  @modules[key] = klass
end
[](key) click to toggle source
# File lib/metrics_influx/module.rb, line 14
def self.[](key)
  key = key.downcase

  unless @modules.has_key? key
    path = "metrics_influx/module/#{key}"

    spec = Gem::Specification.find_by_path(path)
    unless spec.nil?
      activated = spec.activate
      MetricsInflux.logger.info "Activated gem `#{spec.full_name}`" if activated
    end

    begin
      require path
    rescue LoadError
    end
  end

  raise IndexError, "Unknown module #{key}" unless @modules.has_key? key
  @modules[key]
end