Non-standard extension locations in Radiant

by Jim Gay

Sometimes I’ll have the need to load extensions from a non-standard location.

I might have 2 instances of Radiant installed on the same server which may need similar but different functionality.

I can keep the code updated for both if I symlink their extension directories to “/var/radiant_extenions” for example, but then I’d need to mess with the environment files to specify the loading of extensions with config.extensions = [:this, :that, :the_other] in one and config.extensions = [:this, :that, :custom] in another if the requirements of the sites aren’t exactly the same.

Instead, if I know I’ll be just running “rake db:migrate:extensions” for the standard extensions I can place those in my shared location and symlink them as “vendor/standard_extensions” and put my site-specific extensions in “vendor/extensions”. To get that working all you need to do is add this to each environment and I’m good to go: config.extension_paths << "#{Rails.root}/vendor/standard_extensions"

Rake tasks won’t be loaded from there automatically though, so you’d need to be careful about what you put in your set of standards.

In the future, using extensions as gems will be nice, but creating a directory to manage standard extensions is helpful and just running “rake db:migrate:extensions” will load their migrations and bring them up to date in each database.

Post a comment


(required, but not displayed)

(optional)



(required)

1999 - 2010 © Saturn Flyer LLC 1901 N. Moore St. Suite 206 Arlington, VA 22209

Call Jim Gay at 571 403 0338