class Kimurai::Base::Storage

Attributes

database[R]

Public Class Methods

new() click to toggle source
# File lib/kimurai/base/storage.rb, line 6
def initialize
  @mutex = Mutex.new
  @database = {}
end

Public Instance Methods

add(scope, value) click to toggle source
# File lib/kimurai/base/storage.rb, line 24
def add(scope, value)
  @mutex.synchronize do
    database[scope] ||= []
    if value.kind_of?(Array)
      database[scope] += value
      database[scope].uniq!
    else
      database[scope].push(value) unless database[scope].include?(value)
    end
  end
end
all(scope = nil) click to toggle source
# File lib/kimurai/base/storage.rb, line 11
def all(scope = nil)
  @mutex.synchronize do
    scope ? database.fetch(scope, []) : database
  end
end
clear!() click to toggle source
# File lib/kimurai/base/storage.rb, line 47
def clear!
  @mutex.synchronize do
    @database = {}
  end
end
include?(scope, value) click to toggle source
# File lib/kimurai/base/storage.rb, line 17
def include?(scope, value)
  @mutex.synchronize do
    database[scope] ||= []
    database[scope].include?(value)
  end
end
unique?(scope, value) click to toggle source
# File lib/kimurai/base/storage.rb, line 38
def unique?(scope, value)
  @mutex.synchronize do
    database[scope] ||= []
    database[scope].include?(value) ? false : database[scope].push(value) and true
  end
end