Class: Togls::RuleTypeRepositoryDrivers::InMemoryDriver

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

Instance Method Summary collapse

Constructor Details

#initializeInMemoryDriver

Returns a new instance of InMemoryDriver.



4
5
6
7
8
9
# File 'lib/togls/rule_type_repository_drivers/in_memory_driver.rb', line 4

def initialize
  @rule_types = {}
  @rule_type_meta_data = {}
  @type_ids = {}
  @rule_types_lock = Mutex.new
end

Instance Method Details

#get_klass(type_id) ⇒ Object



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

def get_klass(type_id)
  @rule_types_lock.synchronize do
    if @rule_types.has_key?(type_id)
      @rule_types[type_id].dup
    else
      nil
    end
  end
end

#get_type_id(klass_str) ⇒ Object



41
42
43
44
45
46
47
48
49
# File 'lib/togls/rule_type_repository_drivers/in_memory_driver.rb', line 41

def get_type_id(klass_str)
  @rule_types_lock.synchronize do
    if @type_ids.has_key?(klass_str)
      @type_ids[klass_str].dup
    else
      nil
    end
  end
end

#get_type_meta_data(type_id) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/togls/rule_type_repository_drivers/in_memory_driver.rb', line 31

def (type_id)
  @rule_types_lock.synchronize do
    if @rule_types.has_key?(type_id)
      @rule_type_meta_data[type_id].dup
    else
      nil
    end
  end
end

#store(type_id, klass_str, title, description, target_type) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/togls/rule_type_repository_drivers/in_memory_driver.rb', line 11

def store(type_id, klass_str, title, description, target_type)
  @rule_types_lock.synchronize do
    @rule_types[type_id] = klass_str
    @rule_type_meta_data[type_id] = { title: title,
                                      description: description,
                                      target_type: target_type }
    @type_ids[klass_str] = type_id
  end
end