]> git.openstreetmap.org Git - rails.git/blob - app/models/language.rb
Merge remote-tracking branch 'upstream/pull/4654'
[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   has_many :diary_entries, :foreign_key => "language", :inverse_of => :language
12
13   def self.load(file)
14     Language.transaction do
15       YAML.safe_load_file(file).each do |k, v|
16         Language.update(k, :english_name => v["english"], :native_name => v["native"])
17       rescue ActiveRecord::RecordNotFound
18         Language.create do |l|
19           l.code = k
20           l.english_name = v["english"]
21           l.native_name = v["native"]
22         end
23       end
24     end
25   end
26
27   def name
28     name = english_name
29     name += " (#{native_name})" unless native_name.nil? || native_name == english_name
30     name
31   end
32 end