Sha256: 7a2f2c49e08c4f6aa2422b458c559bdabd345cfcf1a663f3ff19662c3bd9c182

Contents?: true

Size: 704 Bytes

Versions: 6

Compression:

Stored size: 704 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
  module SharedStorage
    @@shared = {}

    def self::get(key, default = nil)
      h = @@shared[Thread.current]
      return h.fetch(key, default) if h
      default
    end

    def self::set(key, obj)
      main_key = Thread.current
      @@shared[main_key] = {} unless @@shared.key? main_key
      @@shared[main_key][key] = obj
    end

    def self.clear
      @@shared.delete(Thread.current)
    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

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sqreen-1.9.2-java lib/sqreen/shared_storage.rb
sqreen-1.9.2 lib/sqreen/shared_storage.rb
sqreen-1.9.1-java lib/sqreen/shared_storage.rb
sqreen-1.9.1 lib/sqreen/shared_storage.rb
sqreen-1.9.0-java lib/sqreen/shared_storage.rb
sqreen-1.9.0 lib/sqreen/shared_storage.rb