class Assert::Assertions::Choice(PropertyType, ChoicesType)


Validates a property is a valid choice.

Optional Arguments


class Example
  include Assert

  def initialize; end

  @[Assert::Choice(choices: ["Active", "Inactive", "Pending"])]
  property status : String = "Inactive"

  @[Assert::Choice(choices: [2, 4, 6], multiple_message: "One ore more value is invalid")]
  property fav_numbers : Array(Int32) = [2, 4, 6]

  @[Assert::Choice(choices: ['a', 'b', 'c'], min_matches: 2, min_message: "You must have at least 2 choices")]
  property fav_letters_min : Array(Char) = ['a', 'c']

  @[Assert::Choice(choices: ['a', 'b', 'c'], max_matches: 2, max_message: "You must have at most 2 choices")]
  property fav_letters_max : Array(Char) = ['a']
end # => true

NOTE The generic ChoicesType represents the type of choices.

Defined in:



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 : String, actual : PropertyType, choices : ChoicesType, min_matches : Int32? = nil, max_matches : Int32? = nil, min_message : String? = nil, max_message : String? = nil, multiple_message : 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]