summaryrefslogtreecommitdiff
path: root/app/models/repository_language.rb
blob: b7a96211fb14b509668a2d4b46a84792a3804b88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# frozen_string_literal: true

class RepositoryLanguage < ApplicationRecord
  extend SuppressCompositePrimaryKeyWarning

  belongs_to :project
  belongs_to :programming_language

  default_scope { includes(:programming_language) } # rubocop:disable Cop/DefaultScope

  validates :project, presence: true
  validates :share, inclusion: { in: 0..100, message: "The share of a language is between 0 and 100" }
  validates :programming_language, uniqueness: { scope: :project_id }

  delegate :name, :color, to: :programming_language
end