def apply_string_constraint(key, constraint)
if Array(@form[key]).length > 1
index = 0
Array(@form[key]).each do |value|
res = self.send("match_#{constraint}".intern, @form[key][index].to_s)
if res
if untaint?(key)
@form[key][index] = res
@form[key][index].untaint
end
else
@form[key].delete_at(index)
@invalid_fields[key] ||= []
unless @invalid_fields[key].include?(constraint)
@invalid_fields[key].push(constraint)
end
nil
end
index += 1
end
else
res = self.send("match_#{constraint}".intern, @form[key].to_s)
if res
if untaint?(key)
@form[key] = res
@form[key].untaint
end
else
@form.delete(key)
@invalid_fields[key] ||= []
unless @invalid_fields[key].include?(constraint)
@invalid_fields[key].push(constraint)
end
nil
end
end
end