Module: SafeRequestTimeout::Hooks
- Defined in:
- lib/safe_request_timeout/hooks.rb
Overview
Hooks into other classes from other libraries with timeout blocks. This allows timeouts to be automatically checked before making requests to external services.
Class Method Summary collapse
-
.add_timeout!(klass, methods, module_name = nil) ⇒ Object
Hooks into a class by surrounding specified instance methods with timeout checks.
- .clear_timeout!(klass, methods, module_name = nil) ⇒ Object
Class Method Details
.add_timeout!(klass, methods, module_name = nil) ⇒ Object
Hooks into a class by surrounding specified instance methods with timeout checks.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/safe_request_timeout/hooks.rb', line 9 def add_timeout!(klass, methods, module_name = nil) hooks_module = create_module(klass, module_name, "AddTimeout") Array(methods).each do |method_name| hooks_module.class_eval " def \#{method_name}(\#{splat_args})\n SafeRequestTimeout.check_timeout!\n super(\#{splat_args})\n end\n RUBY\n end\n\n klass.prepend(hooks_module)\nend\n", __FILE__, __LINE__ + 1 |
.clear_timeout!(klass, methods, module_name = nil) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/safe_request_timeout/hooks.rb', line 24 def clear_timeout!(klass, methods, module_name = nil) hooks_module = create_module(klass, module_name, "ClearTimeout") Array(methods).each do |method_name| hooks_module.class_eval " def \#{method_name}(\#{splat_args})\n SafeRequestTimeout.clear_timeout\n super(\#{splat_args})\n end\n RUBY\n end\n\n klass.prepend(hooks_module)\nend\n", __FILE__, __LINE__ + 1 |