Deployment
Creating the plugin is the first step toward componentization of code and achieving the goals set forth at the beginning of this chapter. However, if you don’t have a way to share plugins between applications, and you resort to copying the plugin directory from one project to the next, you aren’t getting the full benefit of a shared library.
There are many methods to share plugins across applications. One is to package the plugin as a gem, and install it on the systems where you want to use the plugin. If you’re using subversion, another good method requiring very little setup is to use subversion’s “externals” property. This technique is covered below.
svn:externals
If you are using subversion to manage your source code, you can
put your plugins in some standard location in your
repository and then create an svn:externals reference in your
application’s vendor/plugins
directory that references the plugins’ location.
For example, suppose we checked our hash_extension plugin directory into
subversion under the path plugins/acts_as_hash.
In any application that we want to have access to the plugin, we
modify the svn:externals property
of the vendor/plugins directory.
We do this like so:
cd vendor/plugins svn propedit svn:externals .
This will bring up the editor defined in your EDITOR
environment variable. The contents of the editor session will contain
any externals properties already set; in this case, probably none. The
format is:
directoryname [-rev] svnpathSo for our hash_extension ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access