lib/traco/class_methods.rb in traco-0.1.0 vs lib/traco/class_methods.rb in traco-0.2.1

- old
+ new

@@ -2,30 +2,37 @@ module ClassMethods def locales_for_column(column) column_names.grep(/\A#{column}_([a-z]{2})\z/) { $1.to_sym - }.sort_by { |x| - x == I18n.default_locale ? :"" : x + }.sort_by { |locale| + if locale == I18n.default_locale + :"0" + else + locale + end } end def human_attribute_name(attribute, options={}) - default = super(attribute, { default: "" }.merge(options)) - if !default.present? && attribute.to_s.match(/\A(\w+)_([a-z]{2})\z/) + default = super(attribute, options.merge(default: "")) + if default.blank? && attribute.to_s.match(/\A(\w+)_([a-z]{2})\z/) column, locale = $1, $2.to_sym if translates?(column) - locale_name = I18n.t(locale, scope: :"i18n.languages", default: locale.to_s.upcase) - return "#{super(column, options)} (#{locale_name})" + return "#{super(column, options)} (#{locale_name(locale)})" end end super end private def translates?(column) - @translates_columns.include?(column.to_sym) + translatable_columns.include?(column.to_sym) + end + + def locale_name(locale) + I18n.t(locale, scope: :"i18n.languages", default: locale.to_s.upcase) end end end