class Coppertone::RequestContext
A container for information that should span the lifetime of an SPF check. This include the DNS client, the locale used for error messages, limits for DNS requests of different types, and limiters that ensure those limits are not exceeded across the lifetime of the request.
Public Class Methods
new(options = {})
click to toggle source
# File lib/coppertone/request_context.rb, line 10 def initialize(options = {}) @options = (options || {}).dup end
Public Instance Methods
dns_client()
click to toggle source
# File lib/coppertone/request_context.rb, line 34 def dns_client @dns_client ||= if @options[:dns_client] @options[:dns_client] elsif @options[:dns_client_class] @options[:dns_client_class].new elsif Coppertone.config.dns_client_class Coppertone.config.dns_client_class.new else DNSAdapter::ResolvClient.new end end
dns_lookups_per_mx_mechanism_limit()
click to toggle source
# File lib/coppertone/request_context.rb, line 22 def dns_lookups_per_mx_mechanism_limit config_value(:dns_lookups_per_mx_mechanism_limit) end
dns_lookups_per_ptr_mechanism_limit()
click to toggle source
# File lib/coppertone/request_context.rb, line 26 def dns_lookups_per_ptr_mechanism_limit config_value(:dns_lookups_per_ptr_mechanism_limit) end
message_locale()
click to toggle source
# File lib/coppertone/request_context.rb, line 30 def message_locale config_value(:message_locale) end
register_dns_lookup_term()
click to toggle source
# File lib/coppertone/request_context.rb, line 14 def register_dns_lookup_term dns_lookup_term_count_limiter.increment! end
register_void_dns_result()
click to toggle source
# File lib/coppertone/request_context.rb, line 18 def register_void_dns_result void_dns_result_count_limiter.increment! end
Private Instance Methods
config_value(k)
click to toggle source
# File lib/coppertone/request_context.rb, line 61 def config_value(k) return @options[k] if @options.key?(k) Coppertone.config.send(k) end
dns_lookup_term_count_limiter()
click to toggle source
# File lib/coppertone/request_context.rb, line 49 def dns_lookup_term_count_limiter limit = config_value(:terms_requiring_dns_lookup_limit) @dns_lookup_term_count_limiter ||= Coppertone::RequestCountLimiter.new(limit, 'DNS lookup term') end
void_dns_result_count_limiter()
click to toggle source
# File lib/coppertone/request_context.rb, line 55 def void_dns_result_count_limiter limit = config_value(:void_dns_result_limit) @void_dns_result_count_limiter ||= Coppertone::RequestCountLimiter.new(limit, 'DNS lookup term') end