I took an unintentional holiday Friday, but I'm back at it.  Today's task was to start wading through The Rails 5 Way.

The first chapter is about configuration, so there was a fair bit of "wait – do I actually know what that means?" and "I'm pretty sure I've glossed over that in the past."

Key stuff

Railties or RailTies is essentially the core class for functionality in Rails.  IIRC (and my knowledge is definitely partial), there's a common abstract class under ActiveController, ActiveRecord, etc., etc., that makes it at possible/plausible that a different implementation for that functionality could be subbed in.   There isn't much intermediate information on Railties out there.

Gem.lock is used to maintain the versions of gemfiles that you have been working with.  When you run bundle, it checks  your gemfile against a dependency tree that has been stored in gem.lock.  If the version information for a gem in gemfile matches up with what's in gem.lock,  bundle accepts the dependency tree for that gem that is gem.lock and doesn't try to recreate it.  If, however, it has changed, bundle will regenerate the dependencies for that gem – which may result in issues that have to be resolved, of course.

What this does is ensure that when you move to a different environment, that hasn't been initialized with your current gemfile, you are still going to be using the gem versions that you were working with – it's not going to give you the latest and greatest, but will use the ones in the gemfile.lock - which means that moving from test to production doesn't mean new versions of the gems get installed.  Unless, of course, you have specifically said to do that (which would be foolish).

That's it for today.