Sha256: 16b4f3f30243cd73afadbc2aebf2f26af94a31e4f2bff728d3415d7ded67b5dd

Contents?: true

Size: 918 Bytes

Versions: 5

Compression:

Stored size: 918 Bytes

Contents

require "request_store/version"
require "request_store/middleware"
require "request_store/railtie" if defined?(Rails::Railtie)

module RequestStore
  def self.store
    Thread.current[:request_store] ||= {}
  end

  def self.clear!
    Thread.current[:request_store] = {}
  end

  def self.begin!
    Thread.current[:request_store_active] = true
  end

  def self.end!
    Thread.current[:request_store_active] = false
  end

  def self.active?
    Thread.current[:request_store_active] || false
  end

  def self.read(key)
    store[key]
  end

  def self.[](key)
    store[key]
  end

  def self.write(key, value)
    store[key] = value
  end

  def self.[]=(key, value)
    store[key] = value
  end

  def self.exist?(key)
    store.key?(key)
  end

  def self.fetch(key, &block)
    store[key] = yield unless exist?(key)
    store[key]
  end

  def self.delete(key, &block)
    store.delete(key, &block)
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
request_store-1.4.0 lib/request_store.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/request_store-1.3.2/lib/request_store.rb
request_store-1.3.2 lib/request_store.rb
request_store-1.3.1 lib/request_store.rb
request_store-1.3.0 lib/request_store.rb