Class: DTR::EnvStore

Inherits:
Object show all
Defined in:
lib/dtr/shared/utils/env_store.rb

Constant Summary collapse

FILE_NAME =
'.dtr_env_pstore'

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.destroyObject



21
22
23
# File 'lib/dtr/shared/utils/env_store.rb', line 21

def self.destroy
  File.delete(FILE_NAME) if File.exist?(FILE_NAME)
end

Instance Method Details

#<<(key_value) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/dtr/shared/utils/env_store.rb', line 41

def <<(key_value)
  key, value = key_value
  repository = PStore.new(FILE_NAME)
  repository.transaction do
    repository[key] = (repository[key] || []) << value
  end
end

#[](key) ⇒ Object



25
26
27
28
29
30
31
32
# File 'lib/dtr/shared/utils/env_store.rb', line 25

def [](key)
  return nil unless File.exist?(FILE_NAME)
  
  repository = PStore.new(FILE_NAME)
  repository.transaction(true) do
    repository[key]
  end
end

#[]=(key, value) ⇒ Object



34
35
36
37
38
39
# File 'lib/dtr/shared/utils/env_store.rb', line 34

def []=(key, value)
  repository = PStore.new(FILE_NAME)
  repository.transaction do
    repository[key] = value
  end
end

#shift(key) ⇒ Object



49
50
51
52
53
54
55
56
57
# File 'lib/dtr/shared/utils/env_store.rb', line 49

def shift(key)
  repository = PStore.new(FILE_NAME)
  repository.transaction do
    if array = repository[key]
      array.shift
      repository[key] = array
    end
  end
end