Module: ExecutionDeadline::Deadliner
- Defined in:
- lib/execution_deadline/deadliner.rb
Constant Summary collapse
- WRAPPED_METHOD =
Proc.new do || Proc.new do |*args, **kwargs, &blk| set_deadline = [:in] && ExecutionDeadline.set_deadline( expires_at: Time.now + [:in], raises: [:raises] ) ExecutionDeadline.current_deadline&.require_seconds_left!([:runs_for]) if [:runs_for] super(*args, **kwargs, &blk).tap do ExecutionDeadline.current_deadline&.check_deadline_expiration! end ensure ExecutionDeadline.clear_deadline! if set_deadline end end
Instance Method Summary collapse
- #_execution_deadline_built_for ⇒ Object
- #_execution_deadline_built_for=(val) ⇒ Object
- #inspect ⇒ Object
- #wrap_implementation(method_name, config) ⇒ Object
Instance Method Details
#_execution_deadline_built_for ⇒ Object
23 24 25 |
# File 'lib/execution_deadline/deadliner.rb', line 23 def _execution_deadline_built_for @_execution_deadline_built_for end |
#_execution_deadline_built_for=(val) ⇒ Object
27 28 29 |
# File 'lib/execution_deadline/deadliner.rb', line 27 def _execution_deadline_built_for=(val) @_execution_deadline_built_for = val end |
#inspect ⇒ Object
19 20 21 |
# File 'lib/execution_deadline/deadliner.rb', line 19 def inspect "ExecutionDeadline::#{@_execution_deadline_built_for}Proxy" end |
#wrap_implementation(method_name, config) ⇒ Object
31 32 33 |
# File 'lib/execution_deadline/deadliner.rb', line 31 def wrap_implementation(method_name, config) define_method(method_name, &WRAPPED_METHOD.call(config)) end |