lib/validates_host/require_a_valid_subnet_matcher.rb
# frozen_string_literal: true
require 'shoulda-matchers'
module Shoulda
module Matchers
module ActiveModel
def require_a_valid_subnet(attribute = :value)
RequireAValidSubnetMatcher.new(attribute)
end
class RequireAValidSubnetMatcher < ValidationMatcher
def description
"require #{@attribute} to be a valid subnet"
end
def matches?(subject)
super(subject)
disallows_invalid_value && allows_valid_value
end
private
def disallows_invalid_value
disallows_value_of('10.0.0')
end
def allows_valid_value
allows_value_of('10.10.10.1/28')
end
end
end
end
end