Module: FromClauseTranslate::ClassMethods

Defined in:
lib/from_clause_translate.rb

Instance Method Summary collapse

Instance Method Details

#translated(*columns) ⇒ Object



49
50
51
52
53
# File 'lib/from_clause_translate.rb', line 49

def translated *columns
  scope = current_scope || all
  scope.add_translated_columns columns
  scope
end

#translates(*columns) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/from_clause_translate.rb', line 15

def translates *columns
  options = columns.extract_options!
  filter_translated_columns(columns).each do |column|
    self::TRANSLATED[column] = true
    I18n.available_locales.each do |locale|
      self::TRANSLATED_SELECTION[locale][column] =
        "#{column}_#{locale} AS #{column}"
    end
    define_translated_column_methods column
  end
  translates_plurals options[:plurals]
end

#translates?(column) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/from_clause_translate.rb', line 45

def translates? column
  self::TRANSLATED[column.to_sym]
end

#translates_plurals(plurals) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/from_clause_translate.rb', line 28

def translates_plurals plurals
  return unless plurals

  plurals.each do |plural|
    plural = plural.to_sym
    self::TRANSLATED[plural] = true
    column = plural.to_s.singularize.to_sym
    selection = I18n.available_locales.map do |locale|
      "#{column}_#{locale}"
    end.join ','
    self::TRANSLATED_PLURALS[plural] = selection
    I18n.available_locales.each do |locale|
      self::TRANSLATED_SELECTION[locale][plural] = selection
    end
  end
end