Class: Strict::Return

Inherits:
Object
  • Object
show all
Defined in:
lib/strict/return.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(validator:) ⇒ Return

Returns a new instance of Return.



15
16
17
18
# File 'lib/strict/return.rb', line 15

def initialize(validator:)
  @validator = validator
  @detailed_validator = DetailedValidator === validator
end

Instance Attribute Details

#validatorObject (readonly)

Returns the value of attribute validator.



13
14
15
# File 'lib/strict/return.rb', line 13

def validator
  @validator
end

Class Method Details

.make(validator = Validators::Anything.instance, **unsupported) ⇒ Object

Raises:

  • (ArgumentError)


6
7
8
9
10
# File 'lib/strict/return.rb', line 6

def make(validator = Validators::Anything.instance, **unsupported)
  raise ArgumentError, "Unsupported return options: #{unsupported.keys.join(', ')}" if unsupported.any?

  new(validator: validator)
end

Instance Method Details

#valid?(value, configuration = Strict.configuration) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/strict/return.rb', line 20

def valid?(value, configuration = Strict.configuration)
  violations(value, configuration).empty?
end

#violations(value, configuration = Strict.configuration) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/strict/return.rb', line 24

def violations(value, configuration = Strict.configuration)
  return Validation::NONE unless configuration.validate?
  return validator.violations(value) if @detailed_validator
  return Validation::NONE if validator === value

  Validation.invalid(validator, value)
end