class MockDnsServer::ConditionalActions
Attributes
context[R]
Public Class Methods
new(context)
click to toggle source
# File lib/mock_dns_server/conditional_actions.rb, line 14 def initialize(context) @context = context @records = ThreadSafe::Array.new end
Public Instance Methods
add(conditional_action)
click to toggle source
# File lib/mock_dns_server/conditional_actions.rb, line 52 def add(conditional_action) # Place new record at beginning of array, so that the most recently # added records are found first. @records.unshift(conditional_action) end
empty?()
click to toggle source
# File lib/mock_dns_server/conditional_actions.rb, line 69 def empty? size == 0 end
find_conditional_action(request, protocol)
click to toggle source
# File lib/mock_dns_server/conditional_actions.rb, line 20 def find_conditional_action(request, protocol) @records.detect { |cond_action| cond_action.condition.call(request, protocol) } end
handle_use_count(conditional_action)
click to toggle source
# File lib/mock_dns_server/conditional_actions.rb, line 42 def handle_use_count(conditional_action) max_uses = conditional_action.max_uses we_care = max_uses && max_uses > 0 if we_care && conditional_action.use_count >= max_uses history.add_conditional_action_removal(conditional_action.description) @records.delete(conditional_action) end end
remove(conditional_action)
click to toggle source
# File lib/mock_dns_server/conditional_actions.rb, line 59 def remove(conditional_action) @records.delete(conditional_action) end
respond_to(request, sender, protocol)
click to toggle source
# File lib/mock_dns_server/conditional_actions.rb, line 25 def respond_to(request, sender, protocol) conditional_action = find_conditional_action(request, protocol) if conditional_action puts 'Found action' if verbose history.add_incoming(request, sender, protocol, conditional_action.description) conditional_action.run(request, sender, context, protocol) puts 'Completed action' if verbose conditional_action.increment_use_count handle_use_count(conditional_action) else puts 'Action not found' if verbose history.add_action_not_found(request) end end
size()
click to toggle source
# File lib/mock_dns_server/conditional_actions.rb, line 64 def size @records.size end