Sha256: 2c2d5c5efe19c2412eb496a8bc8499ecac9b0568a1468c62d02bba531449acaa

Contents?: true

Size: 979 Bytes

Versions: 68

Compression:

Stored size: 979 Bytes

Contents

# Copyright (c) 2015 Sqreen. All Rights Reserved.
# Please refer to our terms for more information: https://www.sqreen.io/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

68 entries across 68 versions & 2 rubygems

Version Path
sqreen-1.18.1-java lib/sqreen/shared_storage.rb
sqreen-1.18.1 lib/sqreen/shared_storage.rb
sqreen-1.18.0-java lib/sqreen/shared_storage.rb
sqreen-1.18.0 lib/sqreen/shared_storage.rb
sqreen-1.17.2-java lib/sqreen/shared_storage.rb
sqreen-1.17.2 lib/sqreen/shared_storage.rb
sqreen-1.17.2.rc1-java lib/sqreen/shared_storage.rb
sqreen-1.17.2.rc1 lib/sqreen/shared_storage.rb
sqreen-1.17.2.beta4-java lib/sqreen/shared_storage.rb
sqreen-1.17.2.beta4 lib/sqreen/shared_storage.rb
sqreen-1.17.2.beta3-java lib/sqreen/shared_storage.rb
sqreen-1.17.2.beta3 lib/sqreen/shared_storage.rb
sqreen-1.17.2.beta2-java lib/sqreen/shared_storage.rb
sqreen-1.17.2.beta2 lib/sqreen/shared_storage.rb
sqreen-1.17.2.beta1-java lib/sqreen/shared_storage.rb
sqreen-1.17.2.beta1 lib/sqreen/shared_storage.rb
sqreen-1.17.0-java lib/sqreen/shared_storage.rb
sqreen-1.17.0 lib/sqreen/shared_storage.rb
sqreen-1.16.2-java lib/sqreen/shared_storage.rb
sqreen-1.16.2 lib/sqreen/shared_storage.rb