Today I was struck by how little I actually understand exactly how gems work, where they come from and where they’re stored.
I’m using client_side_validations gem in my Rails 3.2.14 app and it’s all working fine. According to
bundle show I seem to be using the latest version, 3.2.6, however the
.gemspec on Github for this version has a dependency of
'rails', '>= 4.0.0', '< 4.3.0'
And if I add the Github URL to my
gem 'client_side_validations', github: 'DavyJonesLocker/client_side_validations'
I get kicked with dependency issues when running
bundle install, so can I assume I’m not running the 3.2.6 version from Github? I’m confused.
When I check rubygems.org it shows virtually no dependencies for 3.2.6, except for Rails ~>3.2.0
Where can I find out more about this? I’ve read plenty but so much of it skips over how the whole gem system actually works. I’m all for the benefits of ‘magic’ but I also like to know how things work in the background too.