Sha256: 6239b62dfd6deeb8f4b73f6fdf76fed7011a6e48dc4883589afda74979f79185
Contents?: true
Size: 1014 Bytes
Versions: 4
Compression:
Stored size: 1014 Bytes
Contents
module Cfer::Core # Provides support for hooking into resource types, and evaluating code before or after properties are set module Hooks def pre_block self.class.pre_hooks.sort { |a, b| (a[:nice] || 0) <=> (b[:nice] || 0) }.each do |hook| Docile.dsl_eval(self, &hook[:block]) end end def post_block self.class.post_hooks.sort { |a, b| (a[:nice] || 0) <=> (b[:nice] || 0) }.each do |hook| Docile.dsl_eval(self, &hook[:block]) end end def self.included(base) base.extend(ClassMethods) end module ClassMethods def before(options = {}, &block) self.pre_hooks << options.merge(block: block) end def after(options = {}, &block) self.post_hooks << options.merge(block: block) end def pre_hooks @pre_hooks ||= [] end def post_hooks @post_hooks ||= [] end def inherited(subclass) subclass.include Cfer::Core::Hooks end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
cfer-0.6.2 | lib/cfer/core/hooks.rb |
cfer-0.6.1 | lib/cfer/core/hooks.rb |
cfer-0.6.0 | lib/cfer/core/hooks.rb |
cfer-0.5.0 | lib/cfer/core/hooks.rb |