Class: MockDnsServer::ConditionalActions
- Inherits:
-
Object
- Object
- MockDnsServer::ConditionalActions
- Extended by:
- Forwardable
- Defined in:
- lib/mock_dns_server/conditional_actions.rb
Instance Attribute Summary collapse
-
#context ⇒ Object
readonly
Returns the value of attribute context.
Instance Method Summary collapse
- #add(conditional_action) ⇒ Object
- #empty? ⇒ Boolean
- #find_conditional_action(request, protocol) ⇒ Object
- #handle_use_count(conditional_action) ⇒ Object
-
#initialize(context) ⇒ ConditionalActions
constructor
A new instance of ConditionalActions.
- #remove(conditional_action) ⇒ Object
- #respond_to(request, sender, protocol) ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize(context) ⇒ ConditionalActions
Returns a new instance of ConditionalActions.
14 15 16 17 |
# File 'lib/mock_dns_server/conditional_actions.rb', line 14 def initialize(context) @context = context @records = ThreadSafe::Array.new end |
Instance Attribute Details
#context ⇒ Object (readonly)
Returns the value of attribute context.
8 9 10 |
# File 'lib/mock_dns_server/conditional_actions.rb', line 8 def context @context end |
Instance Method Details
#add(conditional_action) ⇒ Object
52 53 54 55 56 |
# 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? ⇒ Boolean
69 70 71 |
# File 'lib/mock_dns_server/conditional_actions.rb', line 69 def empty? size == 0 end |
#find_conditional_action(request, protocol) ⇒ Object
20 21 22 |
# 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) ⇒ Object
42 43 44 45 46 47 48 49 50 |
# 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) ⇒ Object
59 60 61 |
# File 'lib/mock_dns_server/conditional_actions.rb', line 59 def remove(conditional_action) @records.delete(conditional_action) end |
#respond_to(request, sender, protocol) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# 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 ⇒ Object
64 65 66 |
# File 'lib/mock_dns_server/conditional_actions.rb', line 64 def size @records.size end |