module HasLifecycle::ClassMethods
Public Instance Methods
_init_validation_hash()
click to toggle source
# File lib/geoengineer/utils/has_lifecycle.rb, line 11 def _init_validation_hash { after: {}, before: {} } end
after(lifecycle_step, method_name_or_proc)
click to toggle source
Currently only supporting after(:initialize)
# File lib/geoengineer/utils/has_lifecycle.rb, line 31 def after(lifecycle_step, method_name_or_proc) @_actions = _init_validation_hash unless @_actions @_actions[:after][lifecycle_step] = [] unless @_actions[:after][lifecycle_step] @_actions[:after][lifecycle_step] << method_name_or_proc end
before(lifecycle_step, method_name_or_proc)
click to toggle source
# File lib/geoengineer/utils/has_lifecycle.rb, line 37 def before(lifecycle_step, method_name_or_proc) @_actions = _init_validation_hash unless @_actions @_actions[:before][lifecycle_step] = [] unless @_actions[:before][lifecycle_step] @_actions[:before][lifecycle_step] << method_name_or_proc end
lifecycle_actions(stage, step)
click to toggle source
# File lib/geoengineer/utils/has_lifecycle.rb, line 18 def lifecycle_actions(stage, step) all = [] # inherit lifecycle_actions sclazz = self.superclass all.concat(sclazz.lifecycle_actions(stage, step)) if sclazz.respond_to?(:lifecycle_actions) # Add this lifecycle actions la_exists = @_actions && @_actions[stage] && @_actions[stage][step] all.concat(@_actions[stage][step]) if la_exists all end