module Zen::Service::Plugins

Public Class Methods

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

  plugins[name] || raise("extension `#{name}` is not registered")
end
plugins() click to toggle source
# File lib/zen/service/plugins.rb, line 22
def self.plugins
  @plugins ||= {}
end
register(name, extension) click to toggle source
# File lib/zen/service/plugins.rb, line 11
def self.register(name, extension)
  raise(ArgumentError, "extension `#{name}` is already registered") if plugins.key?(name)

  plugins[name] =
    if (old_name = plugins.key(extension))
      plugins.delete(old_name)
    else
      extension
    end
end