Class: JSONSkooma::Validators::Ipv6
- Defined in:
- lib/json_skooma/validators/ipv6.rb
Constant Summary collapse
- H16 =
/\h{1,4}/
- LS32 =
/(?:#{H16}:#{H16})|#{Ipv4::IPV4_ADDRESS}/
- IPV6_ADDRESS =
/(?:#{H16}:){6}#{LS32}|::(?:#{H16}:){5}#{LS32}|(?:#{H16})?::(?:#{H16}:){4}#{LS32}|(?:(?:#{H16}:){0,1}#{H16})?::(?:#{H16}:){3}#{LS32}|(?:(?:#{H16}:){0,2}#{H16})?::(?:#{H16}:){2}#{LS32}|(?:(?:#{H16}:){0,3}#{H16})?::(?:#{H16}:){1}#{LS32}|(?:(?:#{H16}:){0,4}#{H16})?::#{LS32}|(?:(?:#{H16}:){0,5}#{H16})?::#{H16}|(?:(?:#{H16}:){0,6}#{H16})?::/.freeze
- REGEXP =
/\A#{IPV6_ADDRESS}\z/
Instance Method Summary collapse
Methods inherited from Base
Instance Method Details
#call(data) ⇒ Object
12 13 14 15 |
# File 'lib/json_skooma/validators/ipv6.rb', line 12 def call(data) match = REGEXP.match(data) raise FormatError, "must be a valid IPv6 address" if match.nil? end |