Class: MockDnsServer::PredicateFactory
- Inherits:
-
Object
- Object
- MockDnsServer::PredicateFactory
- Defined in:
- lib/mock_dns_server/predicate_factory.rb
Overview
Each method returns a predicate in the form of a lambda or proc that takes an incoming object (usually a Dnsruby::Message) object as a parameter and returns (as predicates do) true or false.
Instance Method Summary collapse
-
#a_request(qname) ⇒ Object
Convenience method for testing a request of qtype ‘A’ with the given qname.
-
#all(*predicates) ⇒ Object
TODO: Case insensitive? TODO: Add sender to signature for tcp/udp, etc.?.
- #always_false ⇒ Object
- #always_true ⇒ Object
- #any(*predicates) ⇒ Object
- #axfr ⇒ Object
- #dns ⇒ Object
- #from_tcp ⇒ Object
- #from_udp ⇒ Object
- #ixfr ⇒ Object
-
#mt(message) ⇒ Object
shorthand for the MessageTransformers instance.
- #none(*predicates) ⇒ Object
- #qclass(qclass) ⇒ Object
- #qname(qname) ⇒ Object
- #qtype(qtype) ⇒ Object
-
#qtype_and_qname(qtype, qname) ⇒ Object
Convenience method for testing for a specific qtype and qname.
- #soa ⇒ Object
- #xfr ⇒ Object
-
#zone_load ⇒ Object
Returns true for messages relating to data from the zone load.
Instance Method Details
#a_request(qname) ⇒ Object
Convenience method for testing a request of qtype ‘A’ with the given qname.
67 68 69 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 67 def a_request(qname) qtype_and_qname('A', qname) end |
#all(*predicates) ⇒ Object
TODO: Case insensitive? TODO: Add sender to signature for tcp/udp, etc.?
18 19 20 21 22 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 18 def all(*predicates) ->(, protocol = nil) do predicates.all? { |p| p.call(, protocol) } end end |
#always_false ⇒ Object
97 98 99 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 97 def always_false ->(_, _) { false } end |
#always_true ⇒ Object
93 94 95 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 93 def always_true ->(_, _) { true } end |
#any(*predicates) ⇒ Object
24 25 26 27 28 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 24 def any(*predicates) ->(, protocol = nil) do predicates.any? { |p| p.call(, protocol) } end end |
#axfr ⇒ Object
48 49 50 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 48 def axfr qtype('AXFR') end |
#dns ⇒ Object
36 37 38 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 36 def dns ->(, _ = nil) { .is_a?(Dnsruby::Message) } end |
#from_tcp ⇒ Object
85 86 87 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 85 def from_tcp ->(_, protocol) { protocol == :tcp } end |
#from_udp ⇒ Object
89 90 91 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 89 def from_udp ->(_, protocol) { protocol == :udp } end |
#ixfr ⇒ Object
44 45 46 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 44 def ixfr qtype('IXFR') end |
#mt(message) ⇒ Object
shorthand for the MessageTransformers instance
11 12 13 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 11 def mt() MessageTransformer.new() end |
#none(*predicates) ⇒ Object
30 31 32 33 34 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 30 def none(*predicates) ->(, protocol = nil) do predicates.none? { |p| p.call(, protocol) } end end |
#qclass(qclass) ⇒ Object
77 78 79 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 77 def qclass(qclass) ->(, _ = nil) { dns.() && eq_case_insensitive(mt().qclass, qclass) } end |
#qname(qname) ⇒ Object
81 82 83 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 81 def qname(qname) ->(, _ = nil) { dns.() && eq_case_insensitive(mt().qname, qname) } end |
#qtype(qtype) ⇒ Object
71 72 73 74 75 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 71 def qtype(qtype) ->(, _ = nil) do dns.() && eq_case_insensitive(mt().qtype, qtype) end end |
#qtype_and_qname(qtype, qname) ⇒ Object
Convenience method for testing for a specific qtype and qname.
62 63 64 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 62 def qtype_and_qname(qtype, qname) all(qtype(qtype), qname(qname)) end |
#soa ⇒ Object
40 41 42 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 40 def soa qtype('SOA') end |
#xfr ⇒ Object
52 53 54 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 52 def xfr any(axfr, ixfr) end |
#zone_load ⇒ Object
Returns true for messages relating to data from the zone load.
57 58 59 |
# File 'lib/mock_dns_server/predicate_factory.rb', line 57 def zone_load any(xfr, soa) end |