Sha256: abe03d69f0c6919923c94755524664b3aa4d93ce7f50f8642877491847a41533

Contents?: true

Size: 749 Bytes

Versions: 3

Compression:

Stored size: 749 Bytes

Contents

module Localite::Settings
  #
  # Returns the base locale; e.g. :en
  def base
    I18n.default_locale
  end

  #
  # returns the current locale; defaults to the base locale
  def locale
    @locale || base
  end

  #
  # is a specific locale available?
  def available?(locale)
    locale && I18n.backend.available_locales.include?(locale.to_sym)
  end

  #
  # sets the current locale. If the locale is not available it changes
  # the locale to the default locale.
  def locale=(locale)
    locale = locale.to_sym
    @locale = available?(locale) ? locale : base
  end

  #
  # runs a block in the changed locale
  def in(locale, &block)
    old = self.locale
    self.locale = locale if locale
    yield
  ensure
    self.locale = old
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
localite-0.2.0 lib/localite/settings.rb
localite-0.1.3 lib/localite/settings.rb
localite-0.1 lib/localite/settings.rb