summaryrefslogtreecommitdiff
path: root/app/models/programming_language.rb
blob: 06e3034e56acfba6545682f309d4d5c68b172564 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
# frozen_string_literal: true

class ProgrammingLanguage < ApplicationRecord
  validates :name, presence: true
  validates :color, allow_blank: false, color: true

  # Returns all programming languages which match any of the given names (case
  # insensitively).
  scope :with_name_case_insensitive, ->(*names) do
    sanitized_names = names.map(&method(:sanitize_sql_like))
    where(arel_table[:name].matches_any(sanitized_names))
  end
end