Sha256: e0c11adc42b1ea3e7d97ae8eac50df092ab82807168442cb24b88274397836f3

Contents?: true

Size: 879 Bytes

Versions: 15

Compression:

Stored size: 879 Bytes

Contents

require 'active_support/core_ext/array/conversions'

module Hermod
  module Validators
    class Base
      attr_reader :value, :attributes

      # Public: Runs the test for the validator returning true if it passes and
      # raising if it fails
      #
      # Raises a Hermod::InvalidInputError if the test fails
      # Returns true if it succeeds
      def valid?(value, attributes)
        @value, @attributes = value, attributes
        !!test || raise(InvalidInputError, message)
      end

      private

      # Private: override in subclasses to implement the logic for that
      # validator
      #
      # Returns a boolean
      def test
        raise NotImplementedError
      end

      # Private: override in subclasses to provide a more useful error message
      #
      # Returns a string
      def message
        "is invalid"
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
hermod-2.5.0 lib/hermod/validators/base.rb
hermod-2.4.1 lib/hermod/validators/base.rb
hermod-2.4.0 lib/hermod/validators/base.rb
hermod-2.2.0 lib/hermod/validators/base.rb
hermod-2.1.0 lib/hermod/validators/base.rb
hermod-1.2.9 lib/hermod/validators/base.rb
hermod-1.2.8 lib/hermod/validators/base.rb
hermod-1.2.7 lib/hermod/validators/base.rb
hermod-1.2.6 lib/hermod/validators/base.rb
hermod-1.2.5 lib/hermod/validators/base.rb
hermod-1.2.4 lib/hermod/validators/base.rb
hermod-1.2.3 lib/hermod/validators/base.rb
hermod-1.2.2 lib/hermod/validators/base.rb
hermod-1.2.1 lib/hermod/validators/base.rb
hermod-1.2.0 lib/hermod/validators/base.rb