lib/rails-settings/request_cache.rb in rails-settings-cached-2.7.1 vs lib/rails-settings/request_cache.rb in rails-settings-cached-2.8.0

- old
+ new

@@ -1,18 +1,47 @@ module RailsSettings + module RequestCacheGetter + extend ActiveSupport::Concern + + class_methods do + def enable! + Thread.current[:rails_settings_request_cache_enable] = true + end + + def disable! + Thread.current[:rails_settings_request_cache_enable] = nil + end + + def enabled? + Thread.current[:rails_settings_request_cache_enable] + end + + def all_settings + enabled? ? settings : nil + end + + def all_settings=(val) + self.settings = val + end + end + end + if defined? ActiveSupport::CurrentAttributes # For storage all settings in Current, it will reset after per request completed. # Base on ActiveSupport::CurrentAttributes # https://api.rubyonrails.org/classes/ActiveSupport/CurrentAttributes.html class RequestCache < ActiveSupport::CurrentAttributes + include RequestCacheGetter attribute :settings end else # https://github.com/steveklabnik/request_store # For Rails 5.0 require "request_store" class RequestCache + include RequestCacheGetter + class << self def reset self.settings = nil end