I have never packaged any code for a Rails app before. I have read a
fair amount about differences between Gems and Rails plugins, but I
was wanting to get some other opinions.
I have a small cms I have built. As far as what I need to package...
it's basically just a few generators. Here's a few details.
- The app is rails dependent.
- At least for a while, it will not be open source but hopefully will
be at some point.
If you don't wanna expose the source and you need to distribute the
app, you should look for some "encryptor" if there is such a thing.
Ruby is an interpreted language, at least 1.8.x. Either you decide to
distribute the application as a plugin or a gem, you will need to
distribute the source since those are the files that get executed.
It sounds like you want your little cms to be a plugin. In any case you want to "install" it for a given Rails application, so dropping something into ../vendor/plugins/.. gives you a place to put initializers, rake tasks, your templates, etc.
As for the "not be open source", you just need good license agreements with your clients. Don't worry about encrypting the code. Just don't post it anywhere public. If you're going to be "marketing" your cms as part of a hosted service (as opposed to a product), then the packaging choice might not even matter.
It may have been a bit misleading to mention open source. By it not
being open source, I meant that the remote repo where the package will
live will be private. I may open it up to the public at some point.
The only reason I mentioned that, is because I thought that info may
help make the decision to make a Gem or plugin better informed.
Basically, I just want to package my code so I can easily include it
in my custom Rails templates when building out a new cms powered app.
The basic question is do you guys prefer to package code as a Gem or
plugin these days? I hear a lot about Gems being preferred, but just
curious what your thoughts are.