plribeiro3000/validates_host

View on GitHub
lib/validates_host/host_name_validator.rb

Summary

Maintainability
A
35 mins
Test Coverage
# frozen_string_literal: true

class HostNameValidator < ActiveModel::EachValidator
  def validate_each(record, attribute, value)
    return if ValidatesHost::HostName.new(value).valid?

    ruby_prior_version_three =
      Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.0.0')

    if ruby_prior_version_three
      record.errors.add(attribute, :invalid, options)
    else
      record.errors.add(attribute, :invalid, **options)
    end
  end
end