Module: Axiom::Types::ValueComparable
Overview
Add a minimum and maximum value constraint to a type
Instance Attribute Summary collapse
-
#range ⇒ Range
readonly
The range of allowed values.
Class Method Summary collapse
-
.extended(descendant) ⇒ undefined
private
Hook called when module is extended.
Instance Method Summary collapse
-
#finalize ⇒ Axiom::Types::ValueComparable
private
Finalize by setting up a value range constraint.
Instance Attribute Details
#range ⇒ Range (readonly)
The range of allowed values
14 15 16 |
# File 'lib/axiom/types/value_comparable.rb', line 14 def range @range end |
Class Method Details
.extended(descendant) ⇒ undefined
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Hook called when module is extended
Add #minimum and #maximum DSL methods to descendant.
25 26 27 28 |
# File 'lib/axiom/types/value_comparable.rb', line 25 def self.extended(descendant) super descendant. :minimum, :maximum end |
Instance Method Details
#finalize ⇒ Axiom::Types::ValueComparable
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Finalize by setting up a value range constraint
35 36 37 38 39 40 |
# File 'lib/axiom/types/value_comparable.rb', line 35 def finalize return self if frozen? @range = IceNine.deep_freeze(minimum..maximum) use_value_within_range super end |