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

Constructor Details

#initialize(file = EnvStore.default_file) ⇒ EnvStore

Returns a new instance of EnvStore.



25
26
27
# File 'lib/dtr/shared/utils/env_store.rb', line 25

def initialize(file=EnvStore.default_file)
  @pstore = PStore.new(File.expand_path(file))
end

Class Method Details

.default_fileObject



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

def self.default_file
  File.join(DTR.root || Dir.pwd, FILE_NAME)
end

Instance Method Details

#<<(key_value) ⇒ Object



45
46
47
48
49
# File 'lib/dtr/shared/utils/env_store.rb', line 45

def <<(key_value)
  key, value = key_value
  array_value = (self[key] || []) << value
  self[key] = array_value
end

#[](key) ⇒ Object



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

def [](key)
  @pstore.transaction(true) do
    @pstore[key]
  end
end

#[]=(key, value) ⇒ Object



39
40
41
42
43
# File 'lib/dtr/shared/utils/env_store.rb', line 39

def []=(key, value)
  @pstore.transaction do
    @pstore[key] = value
  end
end

#destroyObject



29
30
31
# File 'lib/dtr/shared/utils/env_store.rb', line 29

def destroy
  File.delete(@pstore.path) if File.exist?(@pstore.path)
end