Hi everyone,
I'm trying to set up a plugin structure where I have a main module (for argument's sake called "Abc"), which I want to be able to access in my controllers. So far, so good. I can invoke Abc.method_name without difficulties.
The problems start once I the next part of my plugin: I want to extend Abc with another module or class, either Foo or Bar, with a method such as:
Abc.choose_child('Foo')
The code I currently have is:
/vendors/plugin/my_plugin/lib/abc.rb
module ABC def self.choose_child(child) require "children/" + child send :include, child.constantize end end ActionController::Base.send :include, SOAPHandler
/vendors/plugin/my_plugin/lib/children/foo.rb
module Foo def self.foobar return "hello from Foo" end end
/vendors/plugin/my_plugin/lib/children/bar.rb
module Bar def self.foobar return "hello from Bar" end end
Then, I want to be able to--in my controllers--do Abc.foobar, which would return either "hello from Foo" or "hello from Bar" depending on which one I loaded with choose_child.
This is the loose implementation, anyway--feel free to point out a better structure.
Any help would be appreciated.
Best regards, Sebastian