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