On Sep 11, 8:00 pm, Mozmonkey <[EMAIL PROTECTED]> wrote:
> I'm building an a client/web application that will rely on custom,
> simple plugins that will be written as models with single table
> inheritance to a Widget class. Ideally somebody would just need to
> create a simple model which extends the parent, placed in the correct
> directory and it work "just work". I'm avoiding the rails plugin
> architecture because it should be stupid simple for people to build
> and install. Unfortunately I'm not sure how to:
>
> * Configure Rails to load models from a directory other than /app/
> models/ (is this a 'require' in the environment.rb?)
add the folder(s) to config.load_paths (have a look in environment.rb.
There should be a commented out example of this
> * Get a list of all model objects which inherit from the parent
> class. They will not have database records at first so I cannot rely
> on a DB query.
>
easiest way to do this is probably to just grab a list of everything
in that magic folder (you might as well just require them).
ActiveSupport adds a subclasses method to Class, but obviously that
will only return classes that have actually been loaded.
Fred
> Here's a high level look at how the model plugin would look:
>
> class HelloWorld < Widget
>
> # Create a serialized hash of default options
> def install
> end
>
> # Will be called by the system automatically to execute this plugin
> def run
> say "Hello World"
> end
>
> end
>
> Ideally it would live in RAILS_ROOT/widgets/ directory.
>
> The application will need to know of all the Widget sub-classes in
> order to automatically call their 'install' and 'run' functions. I'm
> also considering doing this in Merb, but I have the most experience in
> Rails and it's for a 24 hour hackfest (at Yahoo!), so I need to build
> this quickly.
>
> Thanks,
> Jeremy
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---