Sha256: 627a73127c511bafa9875c52618f575b6c3f200748b368b1cf6ddf382b7e5c98

Contents?: true

Size: 733 Bytes

Versions: 2

Compression:

Stored size: 733 Bytes

Contents

require 'singleton'

module Polytrix
  class ValidatorRegistry
    include Singleton

    def validators
      @validator ||= []
    end

    class << self
      def validators
        instance.validators
      end

      def register(validator, &callback)
        if block_given?
          match_rules = validator
          validator = Validator.new(match_rules, &callback)
        end
        validators << validator
      end

      def validators_for(challenge)
        selected_validators = validators.select { |v| v.should_validate? challenge }
        selected_validators.empty? ? [Polytrix.configuration.default_validator] : selected_validators
      end

      def clear
        validators.clear
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
polytrix-0.1.0 lib/polytrix/validator_registry.rb
polytrix-0.1.0.pre lib/polytrix/validator_registry.rb