class MockDnsServer::ConditionalAction
Attributes
action[RW]
condition[RW]
description[RW]
max_uses[RW]
use_count[RW]
Public Class Methods
new(condition, action, max_uses)
click to toggle source
@param condition a proc/lambda that, when called with request as a param, returns
true or false to determine whether or not the action will be executed
@param action the code (lambda or proc) to be executed; takes incoming message,
sender, server context, and (optionally) protocol as parameters and performs an action
@param max_uses
maximum number of times this action should be executed @return the value returned by the action, e.g. the message, or array of messages, it sent
# File lib/mock_dns_server/conditional_action.rb, line 15 def initialize(condition, action, max_uses) @condition = condition @action = action @max_uses = max_uses @use_count = 0 end
Public Instance Methods
eligible_to_run?()
click to toggle source
# File lib/mock_dns_server/conditional_action.rb, line 31 def eligible_to_run? max_not_reached = max_uses.nil? || use_count < max_uses max_not_reached && condition.call end
increment_use_count()
click to toggle source
# File lib/mock_dns_server/conditional_action.rb, line 23 def increment_use_count @use_count += 1 end
run(request, sender, context, protocol)
click to toggle source
# File lib/mock_dns_server/conditional_action.rb, line 36 def run(request, sender, context, protocol) # TODO: Output to history? action.call(request, sender, context, protocol) end
to_s()
click to toggle source
# File lib/mock_dns_server/conditional_action.rb, line 27 def to_s "#{super.to_s}; condition: #{condition.to_s}, action = #{action.to_s}, max_uses = #{max_uses}" end