Created

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist

Environment-based initializers in Rails - USE THEM!

View old_school_use.rb
1 2 3 4
# what? why does your production code care what environment it is in? SILLY!
unless Rails.development? || Rails.test?
Slottd::CreatesReservationTimer.for(slot.id)
end
View old_school_use.rb
1 2 3 4 5 6 7 8 9 10 11 12
# in code, no more environment check
Slottd::CreatesReservationTimer.for(slot.id)
 
# in config/development.rb
module Slottd
CreatesReservationTimer = Timers::Null
end
 
# in config/production.rb
module Slottd
CreatesReservationTimer = Timers::IronWorker
end

I like the way the "production" code ends up, but having the constant defined via initializer would likely surprise me. At least the first time I discovered it. And every time I forgot and re-discovered it. Probably worth it though.

...and the 'old_school_use' has the advantage of having it all together, and making reading easier.

jb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.