Add custom LineCodeValidator
This commit is contained in:
parent
96e51a0304
commit
ad6a771dc6
3 changed files with 14 additions and 2 deletions
|
@ -44,7 +44,7 @@ class Note < ActiveRecord::Base
|
|||
validates :note, :project, presence: true
|
||||
validates :note, uniqueness: { scope: [:author, :noteable_type, :noteable_id] }, if: ->(n) { n.is_award }
|
||||
validates :note, inclusion: { in: Emoji.emojis_names }, if: ->(n) { n.is_award }
|
||||
validates :line_code, format: { with: /\A[a-z0-9]+_\d+_\d+\Z/ }, allow_blank: true
|
||||
validates :line_code, line_code: true, allow_blank: true
|
||||
# Attachments are deprecated and are handled by Markdown uploader
|
||||
validates :attachment, file_size: { maximum: :max_attachment_size }
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ class SentNotification < ActiveRecord::Base
|
|||
validates :reply_key, uniqueness: true
|
||||
validates :noteable_id, presence: true, unless: :for_commit?
|
||||
validates :commit_id, presence: true, if: :for_commit?
|
||||
validates :line_code, format: { with: /\A[a-z0-9]+_\d+_\d+\Z/ }, allow_blank: true
|
||||
validates :line_code, line_code: true, allow_blank: true
|
||||
|
||||
class << self
|
||||
def reply_key
|
||||
|
|
12
app/validators/line_code_validator.rb
Normal file
12
app/validators/line_code_validator.rb
Normal file
|
@ -0,0 +1,12 @@
|
|||
# LineCodeValidator
|
||||
#
|
||||
# Custom validator for GitLab line codes.
|
||||
class LineCodeValidator < ActiveModel::EachValidator
|
||||
PATTERN = /\A[a-z0-9]+_\d+_\d+\z/.freeze
|
||||
|
||||
def validate_each(record, attribute, value)
|
||||
unless value =~ PATTERN
|
||||
record.errors.add(attribute, "must be a valid line code")
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue