module EntityProjection::ApplyMacro
Public Instance Methods
apply_macro(event_class, &blk)
click to toggle source
# File lib/entity_projection/entity_projection.rb, line 69 def apply_macro(event_class, &blk) define_apply_method(event_class, &blk) event_registry.register(event_class) end
Also aliased as: apply
define_apply_method(event_class, &blk)
click to toggle source
# File lib/entity_projection/entity_projection.rb, line 75 def define_apply_method(event_class, &blk) apply_method_name = handler_name(event_class) if blk.nil? error_msg = "Handler for #{event_class.name} is not correctly defined. It must have a block." logger.error { error_msg } raise Error, error_msg end send(:define_method, apply_method_name, &blk) apply_method = instance_method(apply_method_name) unless apply_method.arity == 1 error_msg = "Handler for #{event_class.name} is not correctly defined. It can only have a single parameter." logger.error { error_msg } raise Error, error_msg end apply_method_name end
logger()
click to toggle source
# File lib/entity_projection/entity_projection.rb, line 65 def logger @logger ||= Log.get(self) end