Merge remote-tracking branch 'upstream/pull/1809'
[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 < ActiveRecord::Base
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         begin
19           Language.update(k, :english_name => v["english"], :native_name => v["native"])
20         rescue ActiveRecord::RecordNotFound
21           Language.create do |l|
22             l.code = k
23             l.english_name = v["english"]
24             l.native_name = v["native"]
25           end
26         end
27       end
28     end
29   end
30
31   def name
32     name = english_name
33     name += " (#{native_name})" unless native_name.nil?
34     name
35   end
36 end