module ErpBaseErpSvcs::Extensions::Core::ActsAsAspectorOn::ClassMethods
Public Instance Methods
acts_as_aspector_on(*meth_names)
click to toggle source
# File lib/erp_base_erp_svcs/extensions/core/acts_as_aspector_on.rb, line 31 def acts_as_aspector_on(*meth_names) self.instance_eval do define_singleton_method :before do |method_name, &blk| if meth_names.include?(method_name) m = instance_method(method_name) define_method(method_name) do |*args, &block| blk.call(self) unless blk.nil? m.bind(self).call(*args, &block) end end end define_singleton_method :after do |method_name, &blk| if meth_names.include?(method_name) m = instance_method(method_name) define_method(method_name) do |*args, &block| result = m.bind(self).call(*args, &block) blk.call(self, result) unless blk.nil? result end end end end # instance_eval end