Class: Togls::RuleRepositoryDrivers::InMemoryDriver

Inherits:
Object
  • Object
show all
Defined in:
lib/togls/rule_repository_drivers/in_memory_driver.rb

Overview

Rule Repository In-Memory Driver

The Rule Repository In-Memory Driver provides the interface to store and retrieve rules. This is intended to be used by a Rule Repository instance.

Instance Method Summary collapse

Constructor Details

#initializeInMemoryDriver

Returns a new instance of InMemoryDriver.



10
11
12
13
# File 'lib/togls/rule_repository_drivers/in_memory_driver.rb', line 10

def initialize
  @rules = {}
  @rules_lock = Mutex.new
end

Instance Method Details

#get(rule_id) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/togls/rule_repository_drivers/in_memory_driver.rb', line 21

def get(rule_id)
  @rules_lock.synchronize do
    if @rules.has_key?(rule_id)
      Marshal.load(@rules[rule_id])
    else
      nil
    end
  end
end

#store(rule_id, rule_data) ⇒ Object



15
16
17
18
19
# File 'lib/togls/rule_repository_drivers/in_memory_driver.rb', line 15

def store(rule_id, rule_data)
  @rules_lock.synchronize do
    @rules[rule_id] = Marshal.dump(rule_data)
  end
end