module Excom::Plugins::Pluggable
Constants
- Reflection
Public Instance Methods
plugins()
click to toggle source
# File lib/excom/plugins/pluggable.rb, line 29 def plugins @plugins ||= {} end
Also aliased as: extensions
use(name, **opts)
click to toggle source
# File lib/excom/plugins/pluggable.rb, line 3 def use(name, **opts) extension = Plugins.fetch(name) method = extension.excom_options[:use_with] || :include send(method, extension) defaults = extension.excom_options[:default_options] opts = defaults.merge(opts) unless defaults.nil? if extension.const_defined?('ClassMethods') extend extension::ClassMethods end if extension.respond_to?(:used) extension.used(self, **opts) end plugins[name] = Reflection.new(extension, opts) extension end
using?(name)
click to toggle source
# File lib/excom/plugins/pluggable.rb, line 25 def using?(name) plugins.key?(name) end