Since I work for dawanda and rathershort and maintain an example application I had to split my plugin development, if you need to do the same, here is my current methods, can it be improved !?
- maintain all plugins in a seperate folder, because as they grow in numbers they pollute the namespace
- add a copy_plugins task to all applications that copies the plugins they need from the local development to vendor(e.g. to test features before releasing them)
#lib/copy_plugins.rake desc "copies all matching plugins from /apps/plugins to vendor/plugins" task :copy_plugin, :plugin do |t,args| raise "e.g. copy_plugin[rpx_now]" unless args[:plugin] vendor = "vendor/plugins/#{args[:plugin]}" repo = "/apps/plugins/#{args[:plugin]}" raise "#{repo} does not exist" if not File.exist? repo `rm -rf #{vendor}` if File.exist? vendor #remove old `mkdir #{vendor}` require 'pathname' Pathname.new(repo).entries.each do |p| next if %w[. .. .git].include? p.basename.to_s dir = "#{repo}/#{p}" `cp #{File.directory?(dir) ? "-R":""} #{dir} #{vendor}` end end task :copy_plugins do puts `rake copy_plugin[rpx_now]` puts `rake copy_plugin[translation_db_engine]` puts `rake copy_plugin[gettext_i18n_rails]` end