Class: Acmesmith::ChallengeResponderFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/acmesmith/challenge_responder_filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(responder, subject_name_exact: nil, subject_name_suffix: nil, subject_name_regexp: nil) ⇒ ChallengeResponderFilter

Returns a new instance of ChallengeResponderFilter.



3
4
5
6
7
8
# File 'lib/acmesmith/challenge_responder_filter.rb', line 3

def initialize(responder, subject_name_exact: nil, subject_name_suffix: nil, subject_name_regexp: nil)
  @responder = responder
  @subject_name_exact = subject_name_exact && [*subject_name_exact].flatten.compact
  @subject_name_suffix = subject_name_suffix && [*subject_name_suffix].flatten.compact
  @subject_name_regexp = subject_name_regexp && [*subject_name_regexp].flatten.compact.map{ |_| Regexp.new(_) }
end

Instance Method Details

#applicable?(domain) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/acmesmith/challenge_responder_filter.rb', line 10

def applicable?(domain)
  if @subject_name_exact
    return false unless @subject_name_exact.include?(domain)
  end
  if @subject_name_suffix
    return false unless @subject_name_suffix.any? { |suffix| domain.end_with?(suffix) }
  end
  if @subject_name_regexp
    return false unless @subject_name_regexp.any? { |regexp| domain.match?(regexp) } 
  end
  @responder.applicable?(domain)
end