Class: Verdict::Storage::MemoryStorage

Inherits:
Object
  • Object
show all
Defined in:
lib/verdict/storage/memory_storage.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMemoryStorage

Returns a new instance of MemoryStorage.



6
7
8
9
# File 'lib/verdict/storage/memory_storage.rb', line 6

def initialize
  @assignments = {}
  @start_timestamps = {}
end

Instance Attribute Details

#assignmentsObject (readonly)

Returns the value of attribute assignments.



4
5
6
# File 'lib/verdict/storage/memory_storage.rb', line 4

def assignments
  @assignments
end

#start_timestampsObject (readonly)

Returns the value of attribute start_timestamps.



4
5
6
# File 'lib/verdict/storage/memory_storage.rb', line 4

def start_timestamps
  @start_timestamps
end

Instance Method Details

#clear_experiment(experiment) ⇒ Object



27
28
29
# File 'lib/verdict/storage/memory_storage.rb', line 27

def clear_experiment(experiment)
  @assignments.delete(experiment.handle)
end

#remove_assignment(experiment, subject_identifier) ⇒ Object



22
23
24
25
# File 'lib/verdict/storage/memory_storage.rb', line 22

def remove_assignment(experiment, subject_identifier)
  @assignments[experiment.handle] ||= {}
  @assignments[experiment.handle].delete(subject_identifier)
end

#retrieve_assignment(experiment, subject_identifier) ⇒ Object



17
18
19
20
# File 'lib/verdict/storage/memory_storage.rb', line 17

def retrieve_assignment(experiment, subject_identifier)
  experiment_store = @assignments[experiment.handle] || {}
  experiment_store[subject_identifier]
end

#retrieve_start_timestamp(experiment) ⇒ Object



31
32
33
# File 'lib/verdict/storage/memory_storage.rb', line 31

def retrieve_start_timestamp(experiment)
  @start_timestamps[experiment.handle]
end

#store_assignment(assignment) ⇒ Object



11
12
13
14
15
# File 'lib/verdict/storage/memory_storage.rb', line 11

def store_assignment(assignment)
  @assignments[assignment.experiment.handle] ||= {}
  @assignments[assignment.experiment.handle][assignment.subject_identifier] = assignment.returning
  true
end

#store_start_timestamp(experiment, timestamp) ⇒ Object



35
36
37
# File 'lib/verdict/storage/memory_storage.rb', line 35

def store_start_timestamp(experiment, timestamp)
  @start_timestamps[experiment.handle] = timestamp
end