module Excom::Plugins

Public Instance Methods

fetch(name) click to toggle source
# File lib/excom/plugins.rb, line 10
def fetch(name)
  require("excom/plugins/#{name}") unless plugins.key?(name)

  plugins[name] || raise("extension `#{name}` is not registered")
end
plugins() click to toggle source
# File lib/excom/plugins.rb, line 24
def plugins
  @plugins ||= {}
end
register(name, extension, options = {}) click to toggle source
# File lib/excom/plugins.rb, line 16
def register(name, extension, options = {})
  if plugins.key?(name)
    raise ArgumentError, "extension `#{name}` is already registered"
  end
  extension.singleton_class.send(:define_method, :excom_options) { options }
  plugins[name] = extension
end