Module: GettextI18nRails

Extended by:
GettextI18nRails
Included in:
GettextI18nRails
Defined in:
lib/gettext_i18n_rails.rb,
lib/gettext_i18n_rails/backend.rb,
lib/gettext_i18n_rails/railtie.rb,
lib/gettext_i18n_rails/haml_parser.rb,
lib/gettext_i18n_rails/slim_parser.rb,
lib/gettext_i18n_rails/hamlet_parser.rb,
lib/gettext_i18n_rails/html_safe_translations.rb,
lib/gettext_i18n_rails/model_attributes_finder.rb

Defined Under Namespace

Modules: ActiveRecord, HamlParser, HamletParser, HtmlSafeTranslations, SlimParser Classes: Backend, ModelAttributesFinder, Railtie

Constant Summary collapse

VERSION =
File.read( File.join(File.dirname(__FILE__),'..','VERSION') ).strip

Class Method Summary collapse

Class Method Details

.store_model_attributes(options) ⇒ Object

write all found models/columns to a file where GetTexts ruby parser can find them



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
# File 'lib/gettext_i18n_rails/model_attributes_finder.rb', line 3

def store_model_attributes(options)
  file = options[:to] || 'locale/model_attributes.rb'
  begin
    File.open(file,'w') do |f|
      f.puts "#DO NOT MODIFY! AUTOMATICALLY GENERATED FILE!"
      ModelAttributesFinder.new.find(options).each do |table_name,column_names|
        #model name
        model = table_name_to_namespaced_model(table_name)
        if model == nil
          # Some tables are not models, for example: translation tables created by globalize2.
          puts "[Warning] Model not found for table '#{table_name}'"
          next
        end
        f.puts("_('#{model.human_name_without_translation}')")

        #all columns namespaced under the model
        column_names.each do |attribute|
          translation = model.gettext_translation_for_attribute_name(attribute)
          f.puts("_('#{translation}')")
        end
      end
      f.puts "#DO NOT MODIFY! AUTOMATICALLY GENERATED FILE!"
    end
  rescue
    puts "[Error] Attribute extraction failed. Removing incomplete file (#{file})"
    File.delete(file)
    raise
  end
end