52 lines
1.2 KiB
Ruby
52 lines
1.2 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Packages
|
||
|
module Rpm
|
||
|
class Metadatum < ApplicationRecord
|
||
|
self.primary_key = :package_id
|
||
|
|
||
|
belongs_to :package, -> { where(package_type: :rpm) }, inverse_of: :rpm_metadatum
|
||
|
|
||
|
validates :package, presence: true
|
||
|
|
||
|
validates :epoch,
|
||
|
presence: true,
|
||
|
numericality: { only_integer: true, greater_than_or_equal_to: 0 }
|
||
|
|
||
|
validates :release,
|
||
|
presence: true,
|
||
|
length: { maximum: 128 }
|
||
|
|
||
|
validates :summary,
|
||
|
presence: true,
|
||
|
length: { maximum: 1000 }
|
||
|
|
||
|
validates :description,
|
||
|
presence: true,
|
||
|
length: { maximum: 5000 }
|
||
|
|
||
|
validates :arch,
|
||
|
presence: true,
|
||
|
length: { maximum: 255 }
|
||
|
|
||
|
validates :license,
|
||
|
allow_nil: true,
|
||
|
length: { maximum: 1000 }
|
||
|
|
||
|
validates :url,
|
||
|
allow_nil: true,
|
||
|
length: { maximum: 1000 }
|
||
|
|
||
|
validate :rpm_package_type
|
||
|
|
||
|
private
|
||
|
|
||
|
def rpm_package_type
|
||
|
return if package&.rpm?
|
||
|
|
||
|
errors.add(:base, _('Package type must be RPM'))
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|