Sha256: 7857f1b5171ed0fec4b13fb3cd1240644559e7f77e20abece6c1d6841be6509f
Contents?: true
Size: 1.2 KB
Versions: 1
Compression:
Stored size: 1.2 KB
Contents
require "reredos/version" module Reredos class Error < StandardError; end EMAIL_MAX_LENGTH = 256 # メールアドレスの最大長 DOMAIN_MAX_LENGTH = 255 # ドメインの最大長 DOMAIN_LABEL_MAX_LENGTH = 63 # ドメインラベルの最大長 USERNAME_MAX_LENGTH = 64 # ユーザネームの最大長 class << self def valid_email?(str) return false if str.length > EMAIL_MAX_LENGTH return false if str.count('@') != 1 # @は一度だけ username, domain = str.split('@') valid_username?(username) && valid_domain?(domain) end private def valid_domain?(str) return false if str.length > DOMAIN_MAX_LENGTH return false if str[-1] == '-' # 末尾は-でない labels = str.split('.') return false if labels.map(&:length).any?{ |_| _ > DOMAIN_LABEL_MAX_LENGTH } return false unless labels.map{ |_| /\A[0-9a-zA-Z\-]+\z/ === _ }.all? # ラベルに含まれる文字が1文字以上の英数字orハイフン true end def valid_username?(str) return false if str.length > USERNAME_MAX_LENGTH /\A[0-9a-zA-Z\.\+\-\_]+\z/ === str # 既定の文字のみで構成されている end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
reredos-0.1.1 | lib/reredos.rb |