class EasyCallbacks::Dsls::TargetClassesDsl
Attributes
target_class_instance[RW]
Public Class Methods
new(target_class_instance)
click to toggle source
# File lib/easy_callbacks/dsls/target_classes_dsl.rb, line 10 def initialize(target_class_instance) self.target_class_instance = target_class_instance end
Public Instance Methods
after(target_method_name, callback_method_name=nil, &callback_block)
click to toggle source
# File lib/easy_callbacks/dsls/target_classes_dsl.rb, line 22 def after(target_method_name, callback_method_name=nil, &callback_block) handle_callback_definition :after, target_method_name, callback_method_name, &callback_block end
around(target_method_name, callback_method_name=nil, &callback_block)
click to toggle source
# File lib/easy_callbacks/dsls/target_classes_dsl.rb, line 18 def around(target_method_name, callback_method_name=nil, &callback_block) handle_callback_definition :around, target_method_name, callback_method_name, &callback_block end
before(target_method_name, callback_method_name=nil, &callback_block)
click to toggle source
# File lib/easy_callbacks/dsls/target_classes_dsl.rb, line 14 def before(target_method_name, callback_method_name=nil, &callback_block) handle_callback_definition :before, target_method_name, callback_method_name, &callback_block end
Protected Instance Methods
decorate_method(target_method_name)
click to toggle source
# File lib/easy_callbacks/dsls/target_classes_dsl.rb, line 37 def decorate_method(target_method_name) tci = target_class_instance MethodDecorator.decorate target_class_instance.target_class, target_method_name do EasyCallbacks.execute_callbacks self, tci, :before, target_method_name, nil, call_args, &call_block result = error = nil begin result = call_original rescue => e error = e end additional_options = error ? { return_type: :error, return_object: error } : { return_type: :success, return_object: result } EasyCallbacks.execute_callbacks self, tci, :around, target_method_name, additional_options, call_args, &call_block raise error if error EasyCallbacks.execute_callbacks self, tci, :after, target_method_name, nil, call_args, &call_block result end end
handle_callback_definition(callback_type, target_method_name, callback_method_name, &callback_block)
click to toggle source
# File lib/easy_callbacks/dsls/target_classes_dsl.rb, line 28 def handle_callback_definition(callback_type, target_method_name, callback_method_name, &callback_block) push_callback callback_type, target_method_name, callback_method_name, &callback_block decorate_method target_method_name end
push_callback(callback_type, target_method_name, callback_method_name, &callback_block)
click to toggle source
# File lib/easy_callbacks/dsls/target_classes_dsl.rb, line 33 def push_callback(callback_type, target_method_name, callback_method_name, &callback_block) target_class_instance.add_callback callback_type, target_method_name, callback_method_name, &callback_block end
target_class_instance=(target_class_instance)
click to toggle source
# File lib/easy_callbacks/dsls/target_classes_dsl.rb, line 63 def target_class_instance=(target_class_instance) validate_target_class_instance target_class_instance @target_class_instance = target_class_instance end
validate_target_class_instance(target_class_instance)
click to toggle source
# File lib/easy_callbacks/dsls/target_classes_dsl.rb, line 68 def validate_target_class_instance(target_class_instance) Utils::Validator.validate_instance_type! :target_class_instance, target_class_instance, Models::TargetClass end