1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
=begin
lib/gettext_activerecord/base.rb - GetText for ActiveRecord::Base
Copyright (C) 2009 Masao Mutoh
You may redistribute it and/or modify it under the same
license terms as Ruby or LGPL.
=end
module ActiveRecord #:nodoc:
class Base
include GetText
include Validations
@@gettext_untranslate = Hash.new(false)
@@gettext_untranslate_columns = {}
class << self
# Untranslate all of the tablename/fieldnames in this model class.
# (e.g.)
# Person < ActiveRecord::Base
# untranslate_all
# end
def untranslate_all
@@gettext_untranslate[self] = true
end
# Returns true if "untranslate_all" is called. Otherwise false.
def untranslate_all?
@@gettext_untranslate[self]
end
# Sets the untranslate columns.
# (e.g.)
# Person < ActiveRecord::Base
# untranslate :age, :address
# end
def untranslate(*w)
ary = @@gettext_untranslate_columns[self] || []
ary += w.collect{|v| v.to_s}
@@gettext_untranslate_columns[self] = ary
end
# Returns true if the column is set "untranslate".
# (e.g.) untranslate? :foo
def untranslate?(columnname)
ary = @@gettext_untranslate_columns[self] || []
ary.include?(columnname)
end
def untranslate_data #:nodoc:
[@@gettext_untranslate[self], @@gettext_untranslate_columns[self] || []]
end
def columns_with_gettext_activerecord
unless defined? @columns
@columns = nil
end
unless @columns
@columns = columns_without_gettext_activerecord
@columns.each {|column|
column.table_class = self
}
end
@columns
end
alias_method_chain :columns, :gettext_activerecord
end
end
end
|