Merge remote-tracking branch 'upstream/pull/2667'
[rails.git] / app / models / language.rb
1 # == Schema Information
2 #
3 # Table name: languages
4 #
5 #  code         :string           not null, primary key
6 #  english_name :string           not null
7 #  native_name  :string
8 #
9
10 class Language < ApplicationRecord
11   self.primary_key = "code"
12
13   has_many :diary_entries, :foreign_key => "language"
14
15   def self.load(file)
16     Language.transaction do
17       YAML.safe_load(File.read(file)).each do |k, v|
18         Language.update(k, :english_name => v["english"], :native_name => v["native"])
19       rescue ActiveRecord::RecordNotFound
20         Language.create do |l|
21           l.code = k
22           l.english_name = v["english"]
23           l.native_name = v["native"]
24         end
25       end
26     end
27   end
28
29   def name
30     name = english_name
31     name += " (#{native_name})" unless native_name.nil?
32     name
33   end
34 end