# File lib/dm-validations/contextual_validators.rb, line 78
      def add(validator_class, *attributes)
        options = attributes.last.kind_of?(Hash) ? attributes.pop.dup : {}
        normalize_options(options)
        validator_options = DataMapper::Ext::Hash.except(options, :context)

        attributes.each do |attribute|
          # TODO: is :context part of the Validator state (ie, intrinsic),
          # or is it just membership in a collection?
          validator = validator_class.new(attribute, validator_options)
          attribute_validators = self.attribute(attribute)
          attribute_validators << validator unless attribute_validators.include?(validator)

          options[:context].each do |context|
            context_validators = self.context(context)
            next if context_validators.include?(validator)
            context_validators << validator
            # TODO: eliminate this, then eliminate the @model ivar entirely
            Validations::ClassMethods.create_context_instance_methods(@model, context) if @model
          end
        end
      end