module RegisteredUserNicks
Constants
- DEFAULT_ALTERNATIVE_NICKS
Public Instance Methods
Source
# File lib/registered_user_nicks.rb, line 34 def find_registered_user(nick:, registered_users:, alternative_nicks: DEFAULT_ALTERNATIVE_NICKS) nick = Normalize.nick(nick) return nil if nick.empty? exact = registered_users.find { |user| user.nick.casecmp?(nick) } return exact if exact registered_users.find do |user| patterns_for(user.nick, alternative_nicks: alternative_nicks).any? do |pattern| matches_pattern?(nick, pattern) end end end
Source
# File lib/registered_user_nicks.rb, line 22 def matches_alternative?(nick, canonical_nick, alternative_nicks: DEFAULT_ALTERNATIVE_NICKS) patterns_for(canonical_nick, alternative_nicks: alternative_nicks).any? do |pattern| matches_pattern?(nick, pattern) end end
Source
# File lib/registered_user_nicks.rb, line 28 def matches_pattern?(nick, pattern) return true if nick.to_s.casecmp?(pattern.to_s) NickPattern.match?(nick, pattern) end
Source
# File lib/registered_user_nicks.rb, line 18 def patterns_for(canonical_nick, alternative_nicks: DEFAULT_ALTERNATIVE_NICKS) Array(alternative_nicks[canonical_nick]).map(&:to_s).reject(&:empty?) end