class Assert::Assertions::Url(PropertyType)

Overview

Validates a string is a properly formatted URL.

Optional Arguments

Example

class Example
  include Assert

  def initialize; end

  @[Assert::Url]
  property ipv6_url : String = "http://[::1]:80/"

  @[Assert::Url(relative_protocol: true)]
  property relative_url : String = "//example.fake/blog/"

  @[Assert::Url(protocols: %w(ftp file git))]
  property file_url : String = "file://127.0.0.1"

  @[Assert::Url(normalizer: ->(actual : String) { actual.strip })]
  property normalizer : String = "\x09\x09http://www.google.com"
end

Example.new.valid? # => true

Defined in:

assertions/url.cr

Constructors

Instance Method Summary

Instance methods inherited from class Assert::Assertions::Assertion

default_message_template : String default_message_template, groups : Array(String) groups, message : String message, message_template : String message_template, property_name : String property_name, valid? : Bool valid?

Constructor methods inherited from class Assert::Assertions::Assertion

new(property_name : String, message : String? = nil, groups : Array(String)? = nil) new

Constructor Detail

def self.new(property_name : String, actual : Union(String, Nil), protocols : Array(String) = ["http", "https"] of ::String, relative_protocol : Bool = false, normalizer : Proc(String, String)? = nil, message : String? = nil, groups : Array(String)? = nil) #

[View source]

Instance Method Detail

def default_message_template : String #

Returns the default #message_template to use if no message is provided.


[View source]
def message : String #

The message to display if self is not valid.

NOTE This method is defined automatically, and is just present for documentation purposes.


[View source]
def valid? : Bool #

Returns true if a property satisfies self, otherwise false.


[View source]