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

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