Sha256: 601cc44111523153a318f5f9055b7494cee2dd37c31fddea841cb3ec51c9fba1
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
# Optimization One optimization that flipper provides is a memoizing middleware. The memoizing middleware ensures that you only make one adapter call per feature per request. This means if you check the same feature over and over, it will only make one Mongo, Redis, or whatever call per feature for the length of the request. You can use the middleware from a Rails initializer like so: ```ruby # create flipper dsl instance, see above Usage for more details flipper = Flipper.new(...) require 'flipper/middleware/memoizer' config.middleware.use Flipper::Middleware::Memoizer, flipper ``` If you set your flipper instance up in an initializer, you can pass a block to the middleware and it will lazily load the instance the first time the middleware is invoked. ```ruby # config/initializers/flipper.rb module MyRailsApp def self.flipper @flipper ||= Flipper.new(...) end end # config/application.rb config.middleware.use Flipper::Middleware::Memoizer, lambda { MyRailsApp.flipper } ``` **Note**: Be sure that the middleware is high enough up in your stack that all feature checks are wrapped.
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
flipper-0.9.0.beta1 | docs/Optimization.md |
flipper-0.8.0 | docs/Optimization.md |