Module: LocalizableModel::ScopeExtension

Defined in:
lib/localizable_model/scope_extension.rb

Overview

LocalizableModel::ScopeExtension

Injected into the Relation when Model.localized is called.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#localeObject

Returns the value of attribute locale.



9
10
11
# File 'lib/localizable_model/scope_extension.rb', line 9

def locale
  @locale
end

Instance Method Details

#loadObject



17
18
19
20
21
# File 'lib/localizable_model/scope_extension.rb', line 17

def load
  super
  localize_records
  self
end

#localize(locale) ⇒ Object



11
12
13
14
15
# File 'lib/localizable_model/scope_extension.rb', line 11

def localize(locale)
  @locale = locale
  localize_records if loaded?
  self
end

#order_by_localization(*attributes) ⇒ Object

Orders results by localized attribute values.

Product.in_locale(:nb).order_by_localization(:name)
Product.in_locale(:en).order_by_localization(:name, :description)


28
29
30
31
32
33
# File 'lib/localizable_model/scope_extension.rb', line 28

def order_by_localization(*attributes)
  attributes = attributes.flatten.map(&:to_s)

  require_localized_attributes!(attributes)
  order(*attributes.map { |attr| order_by_localization_clause(attr) })
end