Andrew, i tried your suggestion:
and added the following to environment.rb
config.load_paths << "#{RAILS_ROOT}/vendor/plugins/mypluginname/lib"
and that works!
I see that it is added to the path array properly.
Thanks!
-topher
On Dec 4, 2007 3:01 PM, Christopher Zimmermann <[EMAIL PROTECTED]> wrote:
> Thanks alot for your feedback guys.
>
> My plugin exists in the path:
> myappname\vendor\plugins\myplugin
>
> My environments.rb file looks like:
> # Make sure plugins are loaded from lib and vendor
> config.plugin_paths = [
> "#{RAILS_ROOT}/vendor/plugins",
> "#{RADIANT_ROOT}/lib/plugins",
> "#{RADIANT_ROOT}/vendor/plugins"
> ]
>
> ***
>
> When I trace through the application - I see that my plugins are properly
> added to the Dependencies.load_path array in the initializer.rbload_plugins()
> method.
>
> But Dependencies.load_path gets overwritten here:
> extension_loader.rb discover_extensions() method.
> lines 78-88, actually on the last line... ( initializer.set_autoload_paths
> )
>
> extension_roots.each do |ext_path|
> load_paths = %w(lib app/models app/controllers app/helpers
> test/helpers).collect { |p| "#{ext_path}/#{p}" }
> load_paths << ext_path
> load_paths.each { |p| configuration.load_paths << p; $LOAD_PATH
> << p; }
> configuration.controller_paths << "#{ext_path}/app/controllers"
> configuration.view_paths << "#{ext_path}/app/views"
> @extension_roots << ext_path
> end
> initializer.set_autoload_paths
>
> *****
>
> Here is a fix that I have just tried, and seems to work...
> Just in front of the "initializer.set_autoload_paths"
> I added the line:
> configuration.load_paths.concat(Dependencies.load_paths) #CLZ so that
> rails plugins still work??
>
> The set_autoload_paths function basically sets Dependencies.load_paths to
> configuration.load_paths.
>
> ****
>
> Does this seem sensible? So far it seems to work - but ive just done a bit
> of testing.
>
> ps. same issue on 0.6.3 and 0.6.4
> pps. I did just try putting the plugin inside of an extensions plugin
> directory - and that works just fine. The problem is just when i put it in
> the plugin directory of the main RAILS_ROOT app.
>
> -topher
>
>
>
>
>
>
> On Dec 4, 2007 2:35 PM, Sean Cribbs <[EMAIL PROTECTED]> wrote:
>
> > The original reason is so that Radiant can be run from the gem or
> > vendor/radiant. Notice line 17-22 of config/environment.rb. However,
> > that should not affect plugin paths which are set later on in the file.
> > However, you may be onto something here.
> >
> > Sean
> >
> > Andrew O'Brien wrote:
> > > IIRC correctly, what Chris is describing is the reason I had to
> > > explicitly load the rspec and rspec_on_rails plugins in
> > > config/environments/test.rb. Somewhere along the line (and Chris may
> > > have identified it), the plugin load paths are getting blown away.
> > >
> > > Chris: try adding something like
> > >
> > > config.load_paths << "#{RADIANT_ROOT}/vendor/plugins/rspec/lib"
> > >
> > > (but the path for your plugin) to config/environment.rb in the
> > > Radiant::Initializer block.
> > >
> > > What was the original reason for clearing out the load_paths? Is it
> > > something that should be re-examined?
> > >
> > > -Andrew
> > >
> > > On Dec 4, 2007 4:48 PM, Sean Cribbs <[EMAIL PROTECTED]> wrote:
> > >
> > >> It should be loaded. Are you storing it in
> > RAILS_ROOT/vendor/plugins?
> > >> Have you modified the config.plugin_paths in config/environment.rb?
> > >>
> > >> Sean
> > >>
> > >>
> > >> Christopher Zimmermann wrote:
> > >>
> > >>> Hello,
> > >>> Forgive me if this is a stupid or already covered question - i did
> > search on
> > >>> the radiant site and mailing list, but did not see any conclusive
> > answers.
> > >>>
> > >>> In a nutshell:
> > >>> I see that the path to the plugins lib directory is properly added
> > to
> > >>> load_paths by railties/initializer.rb load_plugins().
> > >>> But then the path is completely overwritten in
> > radiant/extension_loader.rb
> > >>> discover_extensions()
> > >>>
> > >>> Context:
> > >>> I am trying use a regular rails plugin
> > "acts_as_taggable_on_steroids", and
> > >>> would like to use several others.
> > >>> I dont need to use it as an extension in Radiant - it will be used
> > elsewhere
> > >>> in the same application. (My app mixes Radiant with a rails app
> > through the
> > >>> lovely "radiant_on_rails", "share_layouts, and "record_tags"
> > extensions.)
> > >>> It is probably possible to create an extension that wraps it - but I
> > would
> > >>> prefer not too. It's nicest (and easiest) if I can just load
> > existing rails
> > >>> plugins and also keep them up to date as people release new
> > versions.
> > >>>
> > >>> The problem that I am having is that this plugin has several modules
> > in it's
> > >>> lib directory that cannot be discovered by rails
> > >>> Dependencies.load_missing_constant because the path has been removed
> > from
> > >>> the Dependencies.load_paths array by Radiant.
> > >>>
> > >>> So when I try to use this Plugin I get a
> > >>> "
> > >>> NameError in TesterController#tagtest
> > >>>
> > >>> Uninitialized constant
> > >>> ActiveRecord::Acts::Taggable::InstanceMethods::TagList
> > >>> "
> > >>>
> > >>> Questions:
> > >>> So, are plugins basically not supported in Radiant?
> > >>> Is there a reason for that... and is there a reason for totally
> > overwritting
> > >>> the Dependencies.load_paths array? Or is this something that could
> > be
> > >>> changed, for example that radiant/extension_loader.rb
> > discover_extensions()
> > >>> appends the paths to load_paths instead of overwriting it?
> > >>>
> > >>>
> > >>> Thanks for any insight into this!!!
> > >>> cheers, topher
> > >>>
> > >>>
> > >>>
> > >>>
> > >> _______________________________________________
> > >> Radiant mailing list
> > >> Post: [email protected]
> > >> Search: http://radiantcms.org/mailing-list/search/
> > >> Site: http://lists.radiantcms.org/mailman/listinfo/radiant
> > >>
> > >>
> > > _______________________________________________
> > > Radiant mailing list
> > > Post: [email protected]
> > > Search: http://radiantcms.org/mailing-list/search/
> > > Site: http://lists.radiantcms.org/mailman/listinfo/radiant
> > >
> > >
> >
> > _______________________________________________
> > Radiant mailing list
> > Post: [email protected]
> > Search: http://radiantcms.org/mailing-list/search/
> > Site: http://lists.radiantcms.org/mailman/listinfo/radiant
> >
>
>
>
> --
> Christopher Zimmermann
> [EMAIL PROTECTED]
> 604-484-9279
>
--
Christopher Zimmermann
[EMAIL PROTECTED]
604-484-9279
_______________________________________________
Radiant mailing list
Post: [email protected]
Search: http://radiantcms.org/mailing-list/search/
Site: http://lists.radiantcms.org/mailman/listinfo/radiant