Module: DataKeeper

Defined in:
lib/data_keeper.rb,
lib/data_keeper/error.rb,
lib/data_keeper/dumper.rb,
lib/data_keeper/loader.rb,
lib/data_keeper/railtie.rb,
lib/data_keeper/version.rb,
lib/data_keeper/definition.rb,
lib/data_keeper/s3_storage.rb,
lib/data_keeper/local_storage.rb,
lib/data_keeper/database_config.rb,
lib/data_keeper/database_helper.rb

Defined Under Namespace

Modules: DatabaseConfig Classes: DatabaseHelper, Definition, DefinitionBuilder, Dumper, Error, Loader, LocalStorage, Railtie, S3Storage

Constant Summary collapse

DumpDoesNotExist =
Class.new(Error)
NoStorageDefined =
Class.new(Error)
VERSION =
"0.2.0"
InvalidDumpType =
Class.new(Error)
InvalidDumpDefinition =
Class.new(Error)

Class Method Summary collapse

Class Method Details

.clear_dumps!Object



89
90
91
# File 'lib/data_keeper.rb', line 89

def self.clear_dumps!
  @dump_definition_builders = {}
end

.create_dump!(name) ⇒ Object

Raises:



27
28
29
30
31
32
33
34
35
36
# File 'lib/data_keeper.rb', line 27

def self.create_dump!(name)
  raise DumpDoesNotExist unless dump?(name)
  raise NoStorageDefined if @storage.nil?

  definition = @dump_definition_builders[name.to_sym].evaluate!

  Dumper.new(name, definition).run! do |file, filename|
    @storage.save(file, filename, name)
  end
end

.database_configObject



81
82
83
# File 'lib/data_keeper.rb', line 81

def self.database_config
  @database_config
end

.database_config=(value) ⇒ Object



77
78
79
# File 'lib/data_keeper.rb', line 77

def self.database_config=(value)
  @database_config = value
end

.define_dump(name, type = :partial, &block) ⇒ Object



23
24
25
# File 'lib/data_keeper.rb', line 23

def self.define_dump(name, type = :partial, &block)
  @dump_definition_builders[name.to_sym] = DefinitionBuilder.new(type, block)
end

.docker_configObject



85
86
87
# File 'lib/data_keeper.rb', line 85

def self.docker_config
  @docker_config
end

.docker_config=(value) ⇒ Object



73
74
75
# File 'lib/data_keeper.rb', line 73

def self.docker_config=(value)
  @docker_config = value
end

.download_dump!(name, path) ⇒ Object

Raises:



48
49
50
51
52
53
54
55
# File 'lib/data_keeper.rb', line 48

def self.download_dump!(name, path)
  raise DumpDoesNotExist unless dump?(name)
  raise NoStorageDefined if @storage.nil?

  @storage.retrieve(name) do |file, filename|
    FileUtils.cp file.path, File.join(path, filename)
  end
end

.dump?(name) ⇒ Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/data_keeper.rb', line 65

def self.dump?(name)
  @dump_definition_builders.key?(name.to_sym)
end

.fetch_and_load_dump!(name) ⇒ Object

Raises:



38
39
40
41
42
43
44
45
46
# File 'lib/data_keeper.rb', line 38

def self.fetch_and_load_dump!(name)
  raise DumpDoesNotExist unless dump?(name)
  raise NoStorageDefined if @storage.nil?
  definition = @dump_definition_builders[name.to_sym].evaluate!

  @storage.retrieve(name) do |file|
    Loader.new(definition, file).load!
  end
end

.load_dump!(name, path) ⇒ Object

Raises:



57
58
59
60
61
62
63
# File 'lib/data_keeper.rb', line 57

def self.load_dump!(name, path)
  raise DumpDoesNotExist unless File.file?(path)
  raise NoStorageDefined if @storage.nil?

  definition = @dump_definition_builders[name.to_sym].evaluate!
  Loader.new(definition, File.open(path)).load!
end

.storage=(value) ⇒ Object



69
70
71
# File 'lib/data_keeper.rb', line 69

def self.storage=(value)
  @storage = value
end