Sha256: 0958450db305356f52b678f5361f7c03b2225ad297ecdb0da9f91d56a9e5ee89
Contents?: true
Size: 1.36 KB
Versions: 2
Compression:
Stored size: 1.36 KB
Contents
require_relative 'core' module RubyEmail # a Domain Name follows the Rfc1123: https://tools.ietf.org/html/rfc1123 class Rfc1123 < Core # one valid character for domain part (first name first character) ATEXT_FIRST_FIRST = '([A-Za-z])' # one valid character for domain part (first name all other characters) ATEXT_FIRST_ALL = '([A-Za-z0-9])' # one valid character for domain part (all other names) ATEXT_ALL = '([A-Za-z0-9\-])' # a valid string for domain part (first name) ATOM_FIRST = "#{ATEXT_FIRST_FIRST}#{ATEXT_ALL}{0,62}" # a valid string for domain part (all other names) ATOM_ALL = "#{ATEXT_FIRST_ALL}#{ATEXT_ALL}{0,62}" # a valid string with subdomains, separated by dots for domain part as IPV4 IPV4 = '(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' # a valid string with subdomains, separated by dots for domain part as Domain Name DOT_ATOM_TEXT = "((#{ATOM_ALL}\\.)*#{ATOM_FIRST})" # email grammar VALIDE = "(?<domain>(?!.{254,})((#{DOT_ATOM_TEXT})|(#{IPV4})))" # regexp to validate complete email REGEXP = Regexp.new "\\A#{VALIDE}\\Z" module String # Check if the current [::String] instance is a valid domain # @return [TrueClass or FalseClass] def is_domain? RubyEmail::Rfc1123.validates? self end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ruby_email-0.2.3 | lib/ruby_email/rfc1123.rb |
ruby_email-0.2.2.2 | lib/ruby_email/rfc1123.rb |