Sha256: 53709f0dad5edada118160ea7dd1b6a5d9cff996ae9fab8bc3ca941210b82c0a

Contents?: true

Size: 524 Bytes

Versions: 26

Compression:

Stored size: 524 Bytes

Contents

module Spree
  class UrlValidator < ActiveModel::EachValidator
    def validate_each(record, attribute, value)
      unless url_valid?(value)
        record.errors.add(attribute, (options[:message] || ERROR_MESSAGE))
      end
    end

    private

    ERROR_MESSAGE = 'must be a valid URL'
    private_constant :ERROR_MESSAGE

    def url_valid?(url)
      uri = begin
        URI.parse(url)
      rescue URI::InvalidURIError
        return false
      end
      uri.host.present? && uri.is_a?(URI::HTTP)
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
spree_core-4.10.1 app/validators/spree/url_validator.rb
spree_core-4.10.0 app/validators/spree/url_validator.rb
spree_core-4.9.0 app/validators/spree/url_validator.rb
spree_core-4.8.3 app/validators/spree/url_validator.rb
spree_core-4.8.2 app/validators/spree/url_validator.rb
spree_core-4.7.3 app/validators/spree/url_validator.rb
spree_core-4.6.6 app/validators/spree/url_validator.rb
spree_core-4.5.5 app/validators/spree/url_validator.rb
spree_core-4.4.1 app/validators/spree/url_validator.rb
spree_core-4.5.4 app/validators/spree/url_validator.rb
spree_core-4.6.5 app/validators/spree/url_validator.rb
spree_core-4.7.2 app/validators/spree/url_validator.rb
spree_core-4.7.1 app/validators/spree/url_validator.rb
spree_core-4.6.4 app/validators/spree/url_validator.rb
spree_core-4.7.0 app/validators/spree/url_validator.rb
spree_core-4.6.3 app/validators/spree/url_validator.rb
spree_core-4.6.2 app/validators/spree/url_validator.rb
spree_core-4.6.1 app/validators/spree/url_validator.rb
spree_core-4.6.0 app/validators/spree/url_validator.rb
spree_core-4.5.3 app/validators/spree/url_validator.rb