Take a look at your
vendor/assets directory. How old are the libraries there?
How often do you remember to check for new versions? There could be some
serious bugs discovered and fixed, maybe even security issues resolved.
One of the ideas of solving this problem is using the
*-rails asset gems.
They are often unofficially maintained gems that re-package the original
library into a ruby gem. While we can't be sure they're up to date with
official releases, we gain a powerful tool that lets us know when newer
versions are available:
Another way to manage assets is to use bower. It is a package manager built using nodejs that is the defacto standard in the front-end development world. Pretty much every library has a bower package, and they're often maintained along with the library. That said, bower is not without faults. First, the assets still need to be somehow added to the app's directory when it's deployed. There are two ways to do this: either fetch them on the development machine and add to source code, or add a hook to your deployment process to install dependencies on each deploy.
Enter Rails Assets
Rails Assets is a system designed to combine
the two approaches described above into one that is the best of both worlds.
From the outside, it acts as a gem server, with rubygems and bundler compatible
APIs, so it fits the normal workflow for ruby development and can be used
Gemfile. Under the hood, it fetches bower packages and automatically
converts them into gems.
Adding assets using Rails Assets is really simple:
https://rails-assets.org as a source in your
source 'https://rubygems.org' source 'https://rails-assets.org'
Finally, add the gem to the Gemfile, with the
gem "rails-assets-angular", "1.2.10"
Using this approach, you get the best of both worlds. The packages are easily
kept up to date with
bundle outdated, installing gems is already included
in your deployment process, and the most recent version is available as soon
as the bower package gets updated.