Sha256: 02ac58ea4c69bf73130e292c5150609ce0e8584adf096eac3d1aa5a2b679d7b9

Contents?: true

Size: 892 Bytes

Versions: 3

Compression:

Stored size: 892 Bytes

Contents

# frozen_string_literal: true

require "key_vortex/constraint/base"

class KeyVortex
  module Constraint
    # Enforces that objects which respond to #<= are less than the
    # defined limit.
    class Maximum < KeyVortex::Constraint::Base
      # @return [Integer] The maximum allowed value
      attr_reader :limit

      # @param limit [Integer] The maximum allowed value
      def initialize(limit)
        super()
        @limit = limit
      end

      # @return [Symbol] :maximum
      def attribute
        :maximum
      end

      # @param constraint [Maximum]
      # @return [Boolean] True if limit <= constraint.limit
      def within?(constraint)
        super && limit <= constraint.limit
      end

      # @param value [Object] Must respond to #<=
      # @return [Boolean] True if value <= limit
      def accepts?(value)
        value <= limit
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
key-vortex-1.1.1 lib/key_vortex/constraint/maximum.rb
key-vortex-1.1.0 lib/key_vortex/constraint/maximum.rb
key-vortex-1.0.0 lib/key_vortex/constraint/maximum.rb