Class: Knight::Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/knight/validator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*rules) ⇒ Validator

Initialize a validator

Examples:

Validator.new(Rule::Presence.new(:username))

Parameters:

  • rules (Array(Rule))


27
28
29
# File 'lib/knight/validator.rb', line 27

def initialize(*rules)
  @rules = Set.new(rules)
end

Instance Attribute Details

#rulesSet(Rule) (readonly)

Return validation rules

Examples:

validator = Validator.new(Rule::Presence.new(:username))
validator.rules

Returns:



15
16
17
# File 'lib/knight/validator.rb', line 15

def rules
  @rules
end

Instance Method Details

#add(rule) ⇒ Set(Rule)

Add a rule

Examples:

validator = Validator.new
validator.add(Rule::Presence.new(:username))

Parameters:

Returns:



42
43
44
# File 'lib/knight/validator.rb', line 42

def add(rule)
  rules << rule if rule
end

#run(resource) ⇒ Result

Run the validator

Examples:

user = User.new(username: 'john')

validator = Validator.new(Rule::Presence.new(:username))
validator.run(user)

Parameters:

  • resource (Object)

Returns:



59
60
61
# File 'lib/knight/validator.rb', line 59

def run(resource)
  Result.new(resource, rules)
end