Skip to content

@coreyhaines /old_school_use.rb
Created

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Environment-based initializers in Rails - USE THEM!
# what? why does your production code care what environment it is in? SILLY!
unless Rails.development? || Rails.test?
Slottd::CreatesReservationTimer.for(slot.id)
end
# 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
@stevenharman

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.

@jbonnet

...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.