[LRUG] Rails: Loading A Plugin On Each Request
Pratik Naik
pratik at thinkwares.com
Mon Jan 7 05:08:46 PST 2008
Another hack is to probably use a Dispatcher.to_prepare callback and
load ( not require ) your plugin's init.rb. Something like following
in your env.rb:
require 'dispatcher'
Dispatcher.to_prepare do
load 'vendor/plugins/whatever/init.rb
end
That might do the trick ? Untested.
On 1/7/08, James Adam <james.adam at gmail.com> wrote:
> Everyone seems to be asking this question recently. There are a few
> approaches - here's some background:
>
> http://dev.rubyonrails.org/ticket/10488
> http://lists.rails-engines.org/pipermail/engine-users-rails-engines.org/2008-January/000629.html
>
> The email to the engines list seems to imply that deleting the lib
> path from load_once_paths does work - I don't think that having the
> engines plugin in an application would make this work when otherwise
> it wouldn't.
>
> Another approach is to simply empty load_once_paths in development;
> see the Rails ticket for more about that.
>
> A third approach is to ensure that all of your classes are explicitly
> loaded using require_dependency, although this might be less
> practical.
>
> HTH
>
> James
>
> On 1/7/08, Andrew Stewart <boss at airbladesoftware.com> wrote:
> > Hi Everyone,
> >
> > Rails changeset 8116 ensures that plugins are only loaded once:
> >
> > http://dev.rubyonrails.org/changeset/8116
> >
> > When developing plugins it's useful to have them reloaded on each
> > request, like normal application code. This used to work but doesn't
> > any more:
> >
> > vendor/plugins/some_plugin/init.rb:
> >
> > lib = File.expand_path(File.join(__FILE__, '..', 'lib'))
> > Dependencies.load_once_paths.delete(lib)
> >
> > I also tried this at the top of config/environment.rb, just before
> > the rails initializer block, but it didn't work either:
> >
> > module Rails
> > class Plugin
> > def load(initializer)
> > # return if loaded? <- we don't want to execute this
> > report_nonexistant_or_empty_plugin! unless valid?
> > evaluate_init_rb(initializer)
> > @loaded = true
> > end
> > end
> > end
> >
> > Does anybody know how I can get a plugin to reload in development?
> >
> > Thanks and regards,
> > Andy Stewart
> >
> > -------
> > http://airbladesoftware.com
> >
> >
> >
> > _______________________________________________
> > Chat mailing list
> > Chat at lists.lrug.org
> > http://lists.lrug.org/listinfo.cgi/chat-lrug.org
> >
>
>
> --
> * J *
> ~
> _______________________________________________
> Chat mailing list
> Chat at lists.lrug.org
> http://lists.lrug.org/listinfo.cgi/chat-lrug.org
>
--
http://m.onkey.org
More information about the Chat
mailing list