module Flakifier
Module included in the target class. Generates a new method with the appropriate flakiness parameters, then replaces the original with it with the .flakify method.
Public Instance Methods
flakify(method_name, error)
click to toggle source
TODO: Add ability to supply number of retries
# File lib/flake/flakifier.rb, line 8 def flakify(method_name, error) alias_method __original_method_name(method_name), method_name class_eval(__flaky_method(method_name, error)) alias_method method_name, __flaky_method_name(method_name) self end
Private Instance Methods
__flaky_method(method_name, error)
click to toggle source
# File lib/flake/flakifier.rb, line 28 def __flaky_method(method_name, error) "def #{__flaky_method_name(method_name)}(*args, &block); @__flaky_method_call_count ||= 0; while @__flaky_method_call_count < 1; @__flaky_method_call_count += 1; raise #{error}; return; end; #{__original_method_name(method_name)}(*args, &block); end;" end
__flaky_method_name(method_name)
click to toggle source
# File lib/flake/flakifier.rb, line 24 def __flaky_method_name(method_name) '__flaky_' + method_name.to_s end
__original_method_name(method_name)
click to toggle source
# File lib/flake/flakifier.rb, line 20 def __original_method_name(method_name) '__original_' + method_name.to_s end