Module: ClassMethods

Includes:
Fallbacks
Defined in:
lib/from_clause_translate/class_methods.rb

Instance Method Summary collapse

Instance Method Details

#translated(*columns) ⇒ Object



39
40
41
42
43
# File 'lib/from_clause_translate/class_methods.rb', line 39

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

#translates(*columns) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/from_clause_translate/class_methods.rb', line 5

def translates *columns
  options = columns.extract_options!
  filter_translated_columns(
    map_translated_columns(columns)
  ).each do |hash|
    column = hash[:name]
    self::TRANSLATED[column] = true
    define_translated_selection column, hash
    define_translated_column_methods column
  end
  translates_plurals options[:plurals]
end

#translates?(column) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/from_clause_translate/class_methods.rb', line 35

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

#translates_plurals(plurals) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/from_clause_translate/class_methods.rb', line 18

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|
      "#{quoted_table_name}.\"#{column}_#{locale}\""
    end.join ','
    self::TRANSLATED_PLURALS[plural] = selection
    I18n.available_locales.each do |locale|
      self::TRANSLATED_SELECTION[locale][plural] = selection
    end
  end
end