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