Class: Knight::Rule::RangeLength
- Inherits:
-
Knight::Rule
- Object
- Knight::Rule
- Knight::Rule::RangeLength
- Defined in:
- lib/knight/rule/range_length.rb
Overview
A rule for checking the length of a value
Constant Summary collapse
- DEFAULT_MESSAGE =
'%{attribute} has an invalid length'.freeze
Instance Attribute Summary collapse
-
#range ⇒ Range
readonly
private
Length value.
Attributes inherited from Knight::Rule
#attribute_name, #message, #options
Instance Method Summary collapse
-
#initialize(attribute_name, range, options = {}) ⇒ undefined
constructor
Initialize a length rule.
-
#matches?(value) ⇒ true, false
private
Check length of the value.
-
#to_hash ⇒ Hash
Return the rule as a hash.
Methods inherited from Knight::Rule
Constructor Details
#initialize(attribute_name, range, options = {}) ⇒ undefined
Initialize a length rule
31 32 33 34 |
# File 'lib/knight/rule/range_length.rb', line 31 def initialize(attribute_name, range, = {}) super(attribute_name, ) @range = range end |
Instance Attribute Details
#range ⇒ Range (readonly)
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.
Length value
15 16 17 |
# File 'lib/knight/rule/range_length.rb', line 15 def range @range end |
Instance Method Details
#matches?(value) ⇒ true, false
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.
Check length of the value
44 45 46 |
# File 'lib/knight/rule/range_length.rb', line 44 def matches?(value) range.cover?(value.length) end |
#to_hash ⇒ Hash
Return the rule as a hash
56 57 58 59 60 61 |
# File 'lib/knight/rule/range_length.rb', line 56 def to_hash super.merge({ minimum: range.min, maximum: range.max }).freeze end |