Rails plugins?

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