module Globalize
Helper class for storing values per locale. Used by Globalize::Adapter to stash and cache attribute values.
Constants
- Version
Public Class Methods
default_fallbacks(for_locale = self.locale)
click to toggle source
# File lib/globalize.rb, line 52 def default_fallbacks(for_locale = self.locale) i18n_fallbacks? ? I18n.fallbacks[for_locale] : [for_locale.to_sym] end
fallbacks(for_locale = self.locale)
click to toggle source
# File lib/globalize.rb, line 48 def fallbacks(for_locale = self.locale) read_fallbacks[for_locale] || default_fallbacks(for_locale) end
fallbacks=(locales)
click to toggle source
# File lib/globalize.rb, line 40 def fallbacks=(locales) set_fallbacks(locales) end
i18n_fallbacks?()
click to toggle source
# File lib/globalize.rb, line 44 def i18n_fallbacks? I18n.respond_to?(:fallbacks) end
locale()
click to toggle source
# File lib/globalize.rb, line 15 def locale read_locale || I18n.locale end
locale=(locale)
click to toggle source
# File lib/globalize.rb, line 19 def locale=(locale) set_locale(locale) end
rails_52?()
click to toggle source
# File lib/globalize.rb, line 65 def rails_52? ::ActiveRecord.version >= Gem::Version.new('5.2.0') end
rails_5?()
click to toggle source
# File lib/globalize.rb, line 61 def rails_5? ::ActiveRecord.version >= Gem::Version.new('5.1.0') end
storage()
click to toggle source
Thread-safe global storage
# File lib/globalize.rb, line 57 def storage RequestStore.store end
with_locale(locale) { |locale| ... }
click to toggle source
# File lib/globalize.rb, line 23 def with_locale(locale, &block) previous_locale = read_locale begin set_locale(locale) result = yield(locale) ensure set_locale(previous_locale) end result end
with_locales(*locales, &block)
click to toggle source
# File lib/globalize.rb, line 34 def with_locales(*locales, &block) locales.flatten.map do |locale| with_locale(locale, &block) end end
Protected Class Methods
read_fallbacks()
click to toggle source
# File lib/globalize.rb, line 79 def read_fallbacks storage[:globalize_fallbacks] || HashWithIndifferentAccess.new end
read_locale()
click to toggle source
# File lib/globalize.rb, line 71 def read_locale storage[:globalize_locale] end
set_fallbacks(locales)
click to toggle source
# File lib/globalize.rb, line 83 def set_fallbacks(locales) fallback_hash = HashWithIndifferentAccess.new locales.each do |key, value| fallback_hash[key] = value.presence || [key] end if locales.present? storage[:globalize_fallbacks] = fallback_hash end
set_locale(locale)
click to toggle source
# File lib/globalize.rb, line 75 def set_locale(locale) storage[:globalize_locale] = locale.try(:to_sym) end