I would also recommend using a metrics tool (I use simplecov, but there are others) to automatically generate reports showing you how much of your code base is tested. It only shows what code has been executed (as opposed to actual functionality being tested), but it goes a long way toward improving your coverage.
Considering how Authlogic has gone the way of the dodo, I wish I had just done this in the first place with my apps. The fewer external dependencies you have, especially for something this important, the better off you are in the long run.
It'd be great to see a second part to this episode that covers a few less essential but common features like account verification via email, password resetting, and a "remember me" option.
The cache-busting timestamps on asset files are there for a reason. What are the consequences for the rest of your app when you just get rid of them like this?
Yes,
Time.zone
is a thread local. It is implemented here: https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/time/zones.rbThis is a great solution.
I wish CodeRay had a CoffeeScript scanner. That's really the only thing that tempts me to switch to Pygments.
Great screencast!
I would also recommend using a metrics tool (I use simplecov, but there are others) to automatically generate reports showing you how much of your code base is tested. It only shows what code has been executed (as opposed to actual functionality being tested), but it goes a long way toward improving your coverage.
Considering how Authlogic has gone the way of the dodo, I wish I had just done this in the first place with my apps. The fewer external dependencies you have, especially for something this important, the better off you are in the long run.
It'd be great to see a second part to this episode that covers a few less essential but common features like account verification via email, password resetting, and a "remember me" option.
Congrats on episode #250! Keep it up. :D
The cache-busting timestamps on asset files are there for a reason. What are the consequences for the rest of your app when you just get rid of them like this?