Class: Mongoid::Fields::I18n

Inherits:
Object
  • Object
show all
Defined in:
lib/custom_fields/extensions/mongoid/fields/i18n.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#fallbacksObject

Returns the value of attribute fallbacks.



8
9
10
# File 'lib/custom_fields/extensions/mongoid/fields/i18n.rb', line 8

def fallbacks
  @fallbacks
end

#localeObject

Returns the value of attribute locale.



8
9
10
# File 'lib/custom_fields/extensions/mongoid/fields/i18n.rb', line 8

def locale
  @locale
end

Class Method Details

.clear_fallbacksObject



41
42
43
# File 'lib/custom_fields/extensions/mongoid/fields/i18n.rb', line 41

def self.clear_fallbacks
  self.instance.fallbacks.try(:clear)
end

.fallbacksObject



22
23
24
25
26
27
28
29
30
# File 'lib/custom_fields/extensions/mongoid/fields/i18n.rb', line 22

def self.fallbacks
  if !self.instance.fallbacks.blank?
    self.instance.fallbacks
  elsif ::I18n.respond_to?(:fallbacks)
    ::I18n.fallbacks
  else
    nil
  end
end

.fallbacks?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/custom_fields/extensions/mongoid/fields/i18n.rb', line 37

def self.fallbacks?
  !self.instance.fallbacks.blank? || (::I18n.respond_to?(:fallbacks) && !::I18n.fallbacks.blank?)
end

.fallbacks_for(locale, fallbacks) ⇒ Object



32
33
34
35
# File 'lib/custom_fields/extensions/mongoid/fields/i18n.rb', line 32

def self.fallbacks_for(locale, fallbacks)
  self.instance.fallbacks ||= {}
  self.instance.fallbacks[locale.to_sym] = fallbacks
end

.instanceObject



10
11
12
# File 'lib/custom_fields/extensions/mongoid/fields/i18n.rb', line 10

def self.instance
  Thread.current[:mongoid_i18n] ||= Mongoid::Fields::I18n.new
end

.localeObject



14
15
16
# File 'lib/custom_fields/extensions/mongoid/fields/i18n.rb', line 14

def self.locale
  self.instance.locale || ::I18n.locale
end

.locale=(value) ⇒ Object



18
19
20
# File 'lib/custom_fields/extensions/mongoid/fields/i18n.rb', line 18

def self.locale=(value)
  self.instance.locale = value.to_sym rescue nil
end

.with_locale(new_locale = nil) ⇒ Object



45
46
47
48
49
50
51
52
53
# File 'lib/custom_fields/extensions/mongoid/fields/i18n.rb', line 45

def self.with_locale(new_locale = nil)
  if new_locale
    current_locale  = self.locale
    self.locale     = new_locale
  end
  yield
ensure
  self.locale = current_locale if new_locale
end