lib/key_vortex/constraint/length.rb in key-vortex-0.2.5 vs lib/key_vortex/constraint/length.rb in key-vortex-1.0.0
- old
+ new
@@ -1,26 +1,35 @@
# frozen_string_literal: true
require "key_vortex/constraint/base"
class KeyVortex
- class Constraint
+ module Constraint
+ # Enforces that objects which respond to #length less than the
+ # specified limit.
class Length < KeyVortex::Constraint::Base
+ # @return [Integer] The upper bound allowed when calling #length on a value
attr_reader :limit
+ # @param limit [Integer] The maximum allowed value
def initialize(limit)
super()
@limit = limit
end
+ # @return [Symbol] :length
def attribute
:length
end
+ # @param constraint [Length]
+ # @return [Boolean] True if limit <= constraint.limit
def within?(constraint)
super && limit <= constraint.limit
end
+ # @param value [Object] Must respond to #length
+ # @return [Boolean] True if length <= limit
def accepts?(value)
value.length <= limit
end
end
end