class Rack::BearerAuth::MatchPattern::Via

Public Instance Methods

match?(via) click to toggle source
# File lib/rack/bearer_auth/match_pattern.rb, line 75
def match?(via)
  _match?(self.pattern, via)
end

Private Instance Methods

_match?(via_pattern, via_value) click to toggle source
# File lib/rack/bearer_auth/match_pattern.rb, line 81
def _match?(via_pattern, via_value) # rubocop:disable Metrics/MethodLength
  case via_pattern
  when nil, :all
    true
  when Symbol, String
    via_pattern.to_sym == via_value
  when Regexp
    !(via_pattern =~ via_value).nil?
  when Proc
    via_pattern.call(via_value)
  when Array
    via_pattern.any? { |pattern| _match?(pattern, via_value) }
  else
    raise "Unsupported via pattern"
  end
end