Sha256: 96e72110b8de4ac9621b4d942ca3ddd585f1243c7783f884c51dc9c0694aca25

Contents?: true

Size: 980 Bytes

Versions: 12

Compression:

Stored size: 980 Bytes

Contents

# 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

12 entries across 12 versions & 1 rubygems

Version Path
sqreen-1.18.6-java lib/sqreen/shared_storage.rb
sqreen-1.18.6 lib/sqreen/shared_storage.rb
sqreen-1.18.5-java lib/sqreen/shared_storage.rb
sqreen-1.18.5 lib/sqreen/shared_storage.rb
sqreen-1.18.4-java lib/sqreen/shared_storage.rb
sqreen-1.18.4 lib/sqreen/shared_storage.rb
sqreen-1.18.3-java lib/sqreen/shared_storage.rb
sqreen-1.18.3 lib/sqreen/shared_storage.rb
sqreen-1.18.3.beta2 lib/sqreen/shared_storage.rb
sqreen-1.18.3.beta1 lib/sqreen/shared_storage.rb
sqreen-1.18.2-java lib/sqreen/shared_storage.rb
sqreen-1.18.2 lib/sqreen/shared_storage.rb