def register_hook(target_method, scope)
if scope == :instance && !method_defined?(target_method)
raise ArgumentError, "#{target_method} instance method does not exist"
elsif scope == :class && !respond_to?(target_method)
raise ArgumentError, "#{target_method} class method does not exist"
end
hooks = hooks_with_scope(scope)
if hooks[target_method].nil?
hooks[target_method] = {
:before => [], :after => [], :in => self
}
define_hook_stack_execution_methods(target_method, scope)
define_advised_method(target_method, scope)
end
end