module Setsuzoku::Pluggable
The module to include into a class to give it plugin functionality.
Attributes
plugin[RW]
Public Class Methods
included(klass)
click to toggle source
# File lib/setsuzoku/pluggable.rb, line 15 def self.included(klass) klass.extend(ClassMethods) klass.class_eval do if klass.respond_to?(:after_initialize) after_initialize :assign_plugin else # Initialize the pluggable instance and associate its plugin. # # @param _args [Array] array of args passed into new. #unused # @param _block [Proc] the block passed into new. #unused # # @return [Class] the instance of the class that is pluggable. def initialize(*_args, &_block) super self.assign_plugin self end end end end
new(*_args, &_block)
click to toggle source
Initialize the pluggable instance and associate its plugin.
@param _args [Array] array of args passed into new. unused @param _block [Proc] the block passed into new. unused
@return [Class] the instance of the class that is pluggable.
Calls superclass method
# File lib/setsuzoku/pluggable.rb, line 27 def initialize(*_args, &_block) super self.assign_plugin self end
Public Instance Methods
assign_plugin(*_args, &block)
click to toggle source
# File lib/setsuzoku/pluggable.rb, line 79 def assign_plugin(*_args, &block) self.plugin = self.class.plugin_context[:plugin_class].new(registering_instance: self, **self.class.plugin_context.except(:plugin_class)) end
plugin_class()
click to toggle source
# File lib/setsuzoku/pluggable.rb, line 87 def plugin_class; end