Sha256: e122caa7b4ae6097005a65a6d51d3c0b3c4a2f9e9e59cef691fd5c30d302bdd5
Contents?: true
Size: 1.67 KB
Versions: 2
Compression:
Stored size: 1.67 KB
Contents
Make Activerecord Observers not load observed models -> faster/safer environment boot. - faster tests + console - able to boot environment without/with empty/with old database Recommended: turn your observers into modules ```Ruby module CachingObserver def self.included(base) this = self base.after_save { |record| this.do_something(record); true } end def self.do_something(record) ... do something ... end end ``` Install ======= gem install lazy_observers Usage ===== class FooObserver < ActiveRecord::Observer lazy_observe "User", "Foo::Bar" ... end ### Extend models from gems after they are loaded LazyObservers.on_load("Arturo::Feature") do |klass| klass.class_eval do ... funky hacks ... end end ### Catch models that are loaded in application startup. LazyObservers.debug_active_record_loading `script/console` or `rails c` ### Verify you did not misspell Loads all classes registered via observers, to make sure you did not misspell</br> (negates the effect of lazyness, so only use for debugging) LazyObservers.check_classes TIPS ==== - .on_load is called before all methods are defined on the baseclass, so they might not be defined - do not use observe and lazy_observe in the same observer (and if you have to, use observe after lay_observe) - do not use Model classes with class-methods of the observer e.g. class FooObserver; Foo.something{}; def after_update; end; end Author ====== [Michael Grosser](http://grosser.it)<br/> michael@grosser.it<br/> License: MIT<br/> [](http://travis-ci.org/grosser/lazy_observers)
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lazy_observers-0.2.0 | Readme.md |
lazy_observers-0.1.0 | Readme.md |