Module: Lit

Extended by:
Lit
Included in:
Lit
Defined in:
lib/lit/middleware.rb,
lib/lit.rb,
lib/lit/cache.rb,
lib/lit/rails.rb,
lib/lit/engine.rb,
lib/lit/export.rb,
lib/lit/import.rb,
lib/lit/loader.rb,
lib/lit/railtie.rb,
lib/lit/version.rb,
lib/lit/i18n_backend.rb,
app/models/lit/locale.rb,
app/models/lit/source.rb,
lib/lit/cloud_translation.rb,
app/models/lit/localization.rb,
app/helpers/lit/sources_helper.rb,
lib/lit/adapters/redis_storage.rb,
app/models/lit/localization_key.rb,
app/helpers/lit/dashboard_helper.rb,
lib/lit/services/humanize_service.rb,
app/helpers/lit/application_helper.rb,
app/jobs/lit/synchronize_source_job.rb,
app/models/lit/localization_version.rb,
app/helpers/lit/localizations_helper.rb,
lib/generators/lit/install_generator.rb,
app/models/lit/incomming_localization.rb,
app/controllers/lit/locales_controller.rb,
app/controllers/lit/sources_controller.rb,
app/controllers/lit/dashboard_controller.rb,
app/helpers/lit/localization_keys_helper.rb,
app/controllers/lit/api/v1/base_controller.rb,
app/controllers/lit/application_controller.rb,
app/controllers/lit/localizations_controller.rb,
app/controllers/lit/api/v1/locales_controller.rb,
app/controllers/lit/localization_keys_controller.rb,
app/controllers/lit/cloud_translations_controller.rb,
lib/lit/services/localization_keys_to_hash_service.rb,
app/controllers/lit/api/v1/localizations_controller.rb,
app/controllers/lit/incomming_localizations_controller.rb,
app/controllers/lit/api/v1/localization_keys_controller.rb

Overview

A middleware that ensures the lit thread value is cleared after the last part of the body is rendered. This is useful when using streaming.j

Uses Rack::BodyProxy, adapted from Rack::Lock’s usage of the same pattern.

Defined Under Namespace

Modules: Adapters, Api, ApplicationHelper, CloudTranslation, DashboardHelper, FrontendHelper, Generators, LocalizationKeysHelper, LocalizationsHelper, Rails, RequestInfoStore, RequestKeysStore, Services, SourcesHelper, Version Classes: ApplicationController, Base, Cache, CloudTranslationsController, DashboardController, Engine, Export, I18nBackend, Import, IncommingLocalization, IncommingLocalizationsController, Loader, Locale, LocalesController, Localization, LocalizationKey, LocalizationKeysController, LocalizationVersion, LocalizationsController, Middleware, Railtie, Source, SourcesController, SynchronizeSourceJob

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Class Attribute Details

.loaderObject

Returns the value of attribute loader.



25
26
27
# File 'lib/lit.rb', line 25

def loader
  @loader
end

Class Method Details

.check_if_table_existsObject



55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/lit.rb', line 55

def self.check_if_table_exists
  Lit::Locale.table_exists?
rescue ActiveRecord::ActiveRecordError => e
  log_txt =
    "An #{e.class} error has been raised during Lit initialization. " \
      "Lit assumes that database tables do not exist.\n\n" \
      "Error: #{e.message}\n\n" \
      "Backtrace:\n" \
      "#{e.backtrace.join("\n")}"
  Logger.new(STDOUT).error(log_txt) if ::Rails.env.test? # ensure this is logged to stdout in test
  ::Rails.logger.error(log_txt)
  false
end

.fallback=(_value) ⇒ Object



80
81
82
# File 'lib/lit.rb', line 80

def self.fallback=(_value)
  ::Rails.logger.error '[DEPRECATION] Lit.fallback= has been deprecated, please use `config.i18n.fallbacks` instead'
end

.get_key_value_engineObject



69
70
71
72
73
74
75
76
77
78
# File 'lib/lit.rb', line 69

def self.get_key_value_engine
  case Lit.key_value_engine
  when 'redis'
    require 'lit/adapters/redis_storage'
    return ::Lit::Adapters::RedisStorage.new
  else
    require 'lit/adapters/hash_storage'
    return ::Lit::Adapters::HashStorage.new
  end
end

.initObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/lit.rb', line 28

def self.init
  @@table_exists ||= check_if_table_exists
  if loader.nil? && @@table_exists
    self.loader ||= Loader.new
    Lit.humanize_key = false if Lit.humanize_key.nil?
    Lit.humanize_key_ignored_keys = [] if Lit.humanize_key_ignored_keys.nil?
    Lit.humanize_key_ignored = %w[i18n date datetime number time support]
    Lit.humanize_key_ignored |= Lit.humanize_key_ignored_keys
    Lit.humanize_key_ignored = Regexp.new("(#{Lit.humanize_key_ignored.join('|')}).*")
    Lit.ignore_yaml_on_startup = true if Lit.ignore_yaml_on_startup.nil?

    Lit.ignored_keys = Lit.ignored_keys.split(',').map(&:strip) if Lit.ignored_keys.is_a?(String)
    Lit.ignored_keys = [] unless Lit.ignored_keys.is_a?(Array)
    Lit.ignored_keys = Lit.ignored_keys.map(&:freeze).freeze

    Lit.hits_counter_enabled = false if Lit.hits_counter_enabled.nil?
    Lit.store_request_info = false if Lit.store_request_info.nil?
    Lit.store_request_keys = false if Lit.store_request_keys.nil?

    # if loading all translations on start, migrations have to be already
    # performed, fails on first deploy
    # self.loader.cache.load_all_translations
    Lit.storage_options ||= {}
  end
  self.loader
end

.versionObject



6
7
8
# File 'lib/lit/version.rb', line 6

def version
  Gem::Version.new Version::STRING
end

Instance Method Details

#determine_redis_providerObject



12
13
14
# File 'lib/lit/adapters/redis_storage.rb', line 12

def determine_redis_provider
  Lit.redis_url || ENV[ENV['REDIS_PROVIDER'] || 'REDIS_URL']
end

#redisObject



6
7
8
9
10
# File 'lib/lit/adapters/redis_storage.rb', line 6

def redis
  $redis ||= nil
  $redis = Redis.new(url: determine_redis_provider) unless $redis
  $redis
end