Sha256: 79781bfa93ebcc8f43fbc6d15809c81d9784a7c79bbfa19fb7a6c7d6db0c26a5

Contents?: true

Size: 997 Bytes

Versions: 10

Compression:

Stored size: 997 Bytes

Contents

# typed: ignore

# Copyright (c) 2015 Sqreen. All Rights Reserved.
# Please refer to our terms for more information: https://www.sqreen.com/terms.html

module Sqreen
  # dedicated local storage
  module SharedStorage
    unless RUBY_VERSION >= '2.3.0'
      def self.get(key)
        h = Thread.current[:sqreen_shared_storage]
        h[key] if h
      end
    end

    def self.set(key, obj)
      Thread.current[:sqreen_shared_storage] ||= {}
      Thread.current[:sqreen_shared_storage][key] = obj
    end

    def self.clear
      return unless Thread.current[:sqreen_shared_storage].is_a?(Hash)
      Thread.current[:sqreen_shared_storage].clear
    end

    def self.inc(value)
      set(value, (get(value) || 0) + 1)
    end

    def self.dec(value)
      set(value, (get(value) || 0) - 1)
    end
  end
end

# Change SharedStorage.get if ruby is actually newer
require 'sqreen/shared_storage23' if RUBY_VERSION >= '2.3.0'

class << Sqreen::SharedStorage
  alias [] get
  alias []= set
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
sqreen-1.25.1 lib/sqreen/shared_storage.rb
sqreen-1.25.0 lib/sqreen/shared_storage.rb
sqreen-1.24.3 lib/sqreen/shared_storage.rb
sqreen-1.24.2 lib/sqreen/shared_storage.rb
sqreen-1.24.1 lib/sqreen/shared_storage.rb
sqreen-1.24.0 lib/sqreen/shared_storage.rb
sqreen-1.23.2 lib/sqreen/shared_storage.rb
sqreen-1.23.1 lib/sqreen/shared_storage.rb
sqreen-1.23.0 lib/sqreen/shared_storage.rb
sqreen-1.22.1 lib/sqreen/shared_storage.rb