Class: Pluggable::PluginFactory

Inherits:
Array
  • Object
show all
Includes:
Singleton
Defined in:
lib/pluggable.rb

Instance Method Summary collapse

Instance Method Details

#build_pluginsObject



22
23
24
25
26
27
28
# File 'lib/pluggable.rb', line 22

def build_plugins
  array_of_instance_and_name_pairs = map do |each| 
    instance = each.new
    {:name => variable_name_for_plugin_instance(instance), :instance => instance}
  end
  Plugins.from_array_of_instance_and_name_pairs(array_of_instance_and_name_pairs)
end

#delegate_plugin_public_methods_to_plugins_class_except(*excluded_methods) ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/pluggable.rb', line 29

def delegate_plugin_public_methods_to_plugins_class_except *excluded_methods
  excluded_methods = excluded_methods.map{|each| each.to_s}
  build_plugins.each do |instance|
    delegated_methods = instance.public_methods-Plugin.public_instance_methods-excluded_methods
    variable_name = variable_name_for_plugin_instance instance
    Plugins.def_delegators variable_name, *delegated_methods
  end
end