class Wardrobe::PluginStore

Attributes

store[R]

Public Instance Methods

add(name, **args) click to toggle source
# File lib/wardrobe/plugin_store.rb, line 8
def add(name, **args)
  begin
    plugin = Wardrobe.plugins.fetch(name)
  rescue KeyError
    begin
      if require "wardrobe/plugins/#{name}"
        retry
      end
    rescue LoadError
      raise NoPluginRegisteredError, name
    end
  end
  mutate do
    store[name] = {
      klass: plugin,
      options: args
    }
  end
end