module Setsuzoku::Pluggable::ClassMethods

Public Instance Methods

default_options() click to toggle source
# File lib/setsuzoku/pluggable.rb, line 52
def default_options
  {
      plugin_class: self
  }
end
plugin_class() click to toggle source
# File lib/setsuzoku/pluggable.rb, line 45
def plugin_class
  @plugin_class
end
plugin_class=(val) click to toggle source
# File lib/setsuzoku/pluggable.rb, line 48
def plugin_class=(val)
  @plugin_class = val
end
plugin_context() click to toggle source
# File lib/setsuzoku/pluggable.rb, line 39
def plugin_context
  @plugin_context
end
plugin_context=(val) click to toggle source
# File lib/setsuzoku/pluggable.rb, line 42
def plugin_context=(val)
  @plugin_context = val
end
register_plugin(**options) click to toggle source
# File lib/setsuzoku/pluggable.rb, line 65
def register_plugin(**options)
  options[:plugin_class].config_context[:required_instance_methods].each do |req_method|
    next if options[:required_instance_methods].key?(req_method)
    raise Setsuzoku::Exception::UndefinedRequiredMethod.new(
        registering_instance: self,
        plugin_class: options[:plugin_class],
        method_name: req_method
    )
  end

  self.plugin_context = self.default_options.merge(options)
end