lib/rails-settings/base.rb in rails-settings-cached-2.0.2 vs lib/rails-settings/base.rb in rails-settings-cached-2.0.3
- old
+ new
@@ -1,7 +1,9 @@
# frozen_string_literal: true
+require "request_store"
+
module RailsSettings
class Base < ActiveRecord::Base
class SettingNotFound < RuntimeError; end
SEPARATOR_REGEXP = /[\s,]/
@@ -21,11 +23,11 @@
self.class.clear_cache
end
class << self
def clear_cache
- Thread.current[:rails_settings_all_settings] = nil
+ RequestStore.store[:rails_settings_all_settings] = nil
Rails.cache.delete(self.cache_key)
end
def field(key, **opts)
_define_field(key, default: opts[:default], type: opts[:type], readonly: opts[:readonly])
@@ -112,10 +114,10 @@
Rails.application && Rails.application.initialized?
end
def _all_settings
raise "You can use settings before Rails initialize." unless rails_initialized?
- Thread.current[:rails_settings_all_settings] ||= begin
+ RequestStore.store[:rails_settings_all_settings] ||= begin
Rails.cache.fetch(self.cache_key, expires_in: 1.week) do
vars = unscoped.select("var, value")
result = {}
vars.each { |record| result[record.var] = record.value }
result.with_indifferent_access