backup_foundation 0.2.1 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 574076e67b0d68ad4ab29c88fd7ecf6565a6357d
4
- data.tar.gz: def5f5093e23de31cd3362dc8ae1d86dcd4cb5f8
3
+ metadata.gz: 9d242ea834958046c133d6653902faa54420b7f6
4
+ data.tar.gz: d9beb94a25f564ced8d6bd925c1df48f3187fe43
5
5
  SHA512:
6
- metadata.gz: a5a531bab11158295ae60302cc492433d9bc3201f3a329afd22a2ba61b97fd12dc3597fdd5e47fc7aca8993757972269bebe1853c5cc0e7b720e8b3c7bf3ff55
7
- data.tar.gz: e65a60cf85a18533aa24502feb6a483ad163b16d09944c78873da106df560866d9793a479a3f1b0f2bb0d6e1f4c9201e6e0371374abb725d6f7978f2f8dd37b8
6
+ metadata.gz: 04e6264285ee486f54cb6881625144b87148b1d6a4e2c2d78f88cb3c9f53f154676fd4e530fbbf08a87f7a683356babed67d13b57362bbd09e3074a02ca3f63a
7
+ data.tar.gz: 43693b0f7707d467396d27113d8a2c65caf9e82802f55acfe1e0c4343d1453171d62850252376c9265447fb5771bcd04e381bd7307c16dbdb1f516858a66c1f7
data/.gitignore CHANGED
@@ -20,3 +20,4 @@ tmp
20
20
  *.o
21
21
  *.a
22
22
  mkmf.log
23
+ *.sqlite3
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
@@ -19,16 +19,15 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_runtime_dependency 'rake'
22
- spec.add_runtime_dependency 'multi_json'
23
22
  spec.add_runtime_dependency 'multipart-post'
24
23
 
25
- spec.add_development_dependency "bundler", "~> 1.6"
26
- spec.add_development_dependency "rspec", "~> 2.5.0"
27
- spec.add_development_dependency "rspec-rails", "~> 2.5.0"
28
- spec.add_development_dependency "mongo_mapper", ">= 0"
29
- spec.add_development_dependency "mongoid", "~> 2.4.4"
30
- spec.add_development_dependency "sqlite3", ">= 0"
24
+ spec.add_development_dependency 'bundler'
25
+ spec.add_development_dependency 'rspec'
26
+ spec.add_development_dependency 'rspec-rails'
27
+ spec.add_development_dependency 'sqlite3'
31
28
  spec.add_development_dependency 'mysql2'
32
29
  spec.add_development_dependency 'pg'
33
- spec.add_development_dependency 'whenever'
30
+ spec.add_development_dependency 'activerecord'
31
+
32
+ spec.add_development_dependency 'pry'
34
33
  end
@@ -1,5 +1,5 @@
1
1
  require 'backup_foundation/version'
2
- require 'backup_foundation/db/databases'
2
+ require 'backup_foundation/item/items'
3
3
  require 'backup_foundation/job'
4
4
  if defined?(Rails)
5
5
  require 'backup_foundation/railtie'
@@ -9,12 +9,12 @@ module BackupFoundation
9
9
  HOST = 'https://backup.foundation' # 'http://localhost:3000'
10
10
 
11
11
  class << self
12
- attr_reader :app_key, :databases, :encryption_key
12
+ attr_reader :app_key, :items, :encryption_key
13
13
 
14
14
  def store_app(app_key, &block)
15
15
  @app_key = app_key
16
- @databases = []
17
- instance_eval &block
16
+ @items = []
17
+ instance_eval(&block) if block_given?
18
18
  end
19
19
 
20
20
  def encrypt(key)
@@ -22,11 +22,36 @@ module BackupFoundation
22
22
  end
23
23
 
24
24
  def backup_db
25
- DB::DATABASES.each do |key, val|
25
+ Item::DATABASES.each do |key, val|
26
26
  if val.respond_to?(:exist?) && val.exist?(Rails.env.to_s)
27
- @databases.push({ type: key }.merge(val.get_config(Rails.env.to_s)))
27
+ @items.push({ type: key }.merge(val.get_config(Rails.env.to_s)))
28
28
  end
29
29
  end
30
30
  end
31
+
32
+ def backup_directory(item_name, path=nil)
33
+ unless path
34
+ path = item_name
35
+ item_name = item_name.gsub '/', '_'
36
+ end
37
+
38
+ @items.push type: 'directory', name: item_name, path: path
39
+ end
40
+
41
+ def make_backup!
42
+ Job.new(
43
+ key: @app_key,
44
+ dbs: @items,
45
+ encryption_key: @encryption_key
46
+ ).backup!
47
+ end
48
+
49
+ def restore_backup!
50
+ Job.new(
51
+ key: @app_key,
52
+ dbs: @items,
53
+ encryption_key: @encryption_key
54
+ ).restore!
55
+ end
31
56
  end
32
57
  end
@@ -1,5 +1,5 @@
1
1
  module BackupFoundation
2
- module DB
2
+ module Item
3
3
  class Base
4
4
  def initialize(options, tmpdir, encryption_key=nil)
5
5
  @options = options
@@ -8,7 +8,7 @@ module BackupFoundation
8
8
  end
9
9
 
10
10
  def outfile_path
11
- "#{@tmpdir}/#{File.basename(@options[:database])}.gz#{'.gpg' if @encryption_key}"
11
+ "#{@tmpdir}/#{File.basename(@options[:database] || @options[:name])}.gz#{'.gpg' if @encryption_key}"
12
12
  end
13
13
 
14
14
  def output_to_file(command)
@@ -0,0 +1,13 @@
1
+ module BackupFoundation
2
+ module Item
3
+ class Directory < Base
4
+ def save_dump(tmpdir)
5
+ dump_and_encrypt_if_needed "tar -c #{@options[:path]}"
6
+ end
7
+
8
+ def load_dump(infile_path)
9
+ decrypt_if_needed_and_restore "tar -x", infile_path
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+ module BackupFoundation
2
+ module Item
3
+ autoload :Base, 'backup_foundation/item/base'
4
+ autoload :MySQL, 'backup_foundation/item/mysql'
5
+ autoload :PostgreSQL, 'backup_foundation/item/postgresql'
6
+ autoload :SQLite, 'backup_foundation/item/sqlite'
7
+ autoload :Directory, 'backup_foundation/item/directory'
8
+
9
+ DATABASES = {
10
+ mysql: BackupFoundation::Item::MySQL,
11
+ postgresql: BackupFoundation::Item::PostgreSQL,
12
+ sqlite: BackupFoundation::Item::SQLite,
13
+ directory: BackupFoundation::Item::Directory
14
+ }
15
+ end
16
+ end
@@ -1,5 +1,5 @@
1
1
  module BackupFoundation
2
- module DB
2
+ module Item
3
3
  class MySQL < Base
4
4
  class << self
5
5
  def exist?(rails_env=nil)
@@ -1,5 +1,5 @@
1
1
  module BackupFoundation
2
- module DB
2
+ module Item
3
3
  class PostgreSQL < Base
4
4
  class << self
5
5
  def exist?(rails_env=nil)
@@ -1,5 +1,5 @@
1
1
  module BackupFoundation
2
- module DB
2
+ module Item
3
3
  class SQLite < Base
4
4
  class << self
5
5
  def exist?(rails_env=nil)
@@ -1,5 +1,5 @@
1
1
  require 'net/http/post/multipart'
2
- require 'backup_foundation/db/databases'
2
+ require 'backup_foundation/item/items'
3
3
 
4
4
  module BackupFoundation
5
5
  class Job
@@ -9,7 +9,7 @@ module BackupFoundation
9
9
 
10
10
  def backup!
11
11
  for_each_db do |db, tmpdir|
12
- (dumper = BackupFoundation::DB::DATABASES[db[:type].to_sym].new(db, tmpdir, @params['encryption_key'])).save_dump tmpdir
12
+ (dumper = BackupFoundation::Item::DATABASES[db[:type].to_sym].new(db, tmpdir, @params[:encryption_key])).save_dump tmpdir
13
13
  if File.exist? dumper.outfile_path
14
14
  send_db_dump dumper.outfile_path, db
15
15
  FileUtils.remove_entry_secure dumper.outfile_path
@@ -21,7 +21,7 @@ module BackupFoundation
21
21
  for_each_db do |db, tmpdir|
22
22
  file_path = download_db_dump tmpdir, db
23
23
  if File.exist? file_path
24
- BackupFoundation::DB::DATABASES[db[:type].to_sym].new(db, tmpdir, @params['encryption_key']).load_dump file_path
24
+ BackupFoundation::Item::DATABASES[db[:type].to_sym].new(db, tmpdir, @params[:encryption_key]).load_dump file_path
25
25
  FileUtils.remove_entry_secure file_path
26
26
  end
27
27
  end
@@ -29,10 +29,7 @@ module BackupFoundation
29
29
 
30
30
  def for_each_db(&block)
31
31
  tmpdir = Dir.mktmpdir
32
- @params['dbs'].each do |db|
33
- unless defined?(HashWithIndifferentAccess) && db.is_a?(HashWithIndifferentAccess)
34
- db.each { |key, val| db[key.to_sym] = db.delete(key) }
35
- end
32
+ @params[:dbs].each do |db|
36
33
  yield db, tmpdir
37
34
  end
38
35
  FileUtils.remove_entry_secure(tmpdir) if tmpdir and File.exist?(tmpdir)
@@ -40,12 +37,12 @@ module BackupFoundation
40
37
 
41
38
  def send_db_dump(file, db)
42
39
  url = URI.parse "#{BackupFoundation::HOST}/api/file"
43
- upload_file = UploadIO.new(file, 'application/octet-stream', db[:type].to_s)
40
+ upload_file = UploadIO.new(file, 'application/octet-stream', (db[:name] || db[:type]).to_s)
44
41
  request = Net::HTTP::Post::Multipart.new url.path,
45
42
  'file' => upload_file,
46
- 'key' => @params['key'],
43
+ 'key' => @params[:key],
47
44
  'gz' => 'on',
48
- 'gpg' => @params['encryption_key'] ? 'on' : 'off',
45
+ 'gpg' => @params[:encryption_key] ? 'on' : 'off',
49
46
  'md5' => Digest::MD5.hexdigest(File.read(file))
50
47
 
51
48
  http = Net::HTTP.new url.host, url.port
@@ -70,7 +67,7 @@ module BackupFoundation
70
67
 
71
68
  def download_db_dump(tmpdir, db)
72
69
  file_path = nil
73
- url = URI.parse "#{BackupFoundation::HOST}/api/file?key=#{@params['key']}&name=#{db[:type]}"
70
+ url = URI.parse "#{BackupFoundation::HOST}/api/file?key=#{@params[:key]}&name=#{db[:name] || db[:type]}"
74
71
  http = Net::HTTP.new url.host, url.port
75
72
  if url.is_a? URI::HTTPS
76
73
  http.use_ssl = true
@@ -1,25 +1,11 @@
1
1
  namespace :backup_foundation do
2
2
  desc 'Prepare and upload files for backup'
3
3
  task backup: :environment do
4
- opts = HashWithIndifferentAccess.new \
5
- key: BackupFoundation.app_key,
6
- dbs: BackupFoundation.databases,
7
- encryption_key: BackupFoundation.encryption_key
8
- job = BackupFoundation::Job.new(opts).backup!
4
+ BackupFoundation.make_backup!
9
5
  end
10
6
 
11
- # desc 'Support task. Makes all dirty job'
12
- # task :dump_and_send, :params do |t, params|
13
- # require File.expand_path("../../job", __FILE__)
14
- # BackupFoundation::Job.new(MultiJson.load(params[:params])).backup!
15
- # end
16
-
17
7
  desc 'Download and restore files from server'
18
8
  task restore: :environment do
19
- opts = HashWithIndifferentAccess.new \
20
- key: BackupFoundation.app_key,
21
- dbs: BackupFoundation.databases,
22
- encryption_key: BackupFoundation.encryption_key
23
- job = BackupFoundation::Job.new(opts).restore!
9
+ BackupFoundation.restore_backup!
24
10
  end
25
11
  end
@@ -1,3 +1,3 @@
1
1
  module BackupFoundation
2
- VERSION = "0.2.1"
2
+ VERSION = "0.9.1"
3
3
  end
@@ -2,6 +2,13 @@
2
2
 
3
3
  BackupFoundation.store_app "ENTER_YOUR_APP_KEY_HERE" do
4
4
  backup_db
5
+
6
+ encrypt '<%= SecureRandom.hex %>'
5
7
  # This key is uniq and was created for you by generator.
6
- encrypt "<%= SecureRandom.hex %>"
8
+ # It's strongly recommended to store encryption key in some secure place before using it.
9
+ # Otherwise you will lose ability to recover backups if you lose the key.
10
+
11
+ # backup_directory :uploads, 'public/uploads'
12
+ # backup_directory :logs, 'log'
13
+ # You can set there as many directories as you wish
7
14
  end
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+ describe BackupFoundation do
4
+ describe '::store_app' do
5
+ it 'saves app key and encryption ket' do
6
+ BackupFoundation.store_app('asdf')
7
+ expect(BackupFoundation.app_key).to eq('asdf')
8
+ end
9
+ end
10
+
11
+ describe '::encrypt' do
12
+ it 'saves ecryption key' do
13
+ BackupFoundation.store_app('asdf') { encrypt 'qwer' }
14
+ expect(BackupFoundation.encryption_key).to eq('qwer')
15
+ end
16
+ end
17
+
18
+ describe '::backup_db' do
19
+ it 'recognizes SQLite' do
20
+ Rails.env = ActiveSupport::StringInquirer.new('sqlite')
21
+ connect_active_record
22
+ BackupFoundation.store_app('asdf') { backup_db }
23
+ expect(BackupFoundation.items[0][:type]).to eq(:sqlite)
24
+ end
25
+
26
+ it 'recognizes PostgreSQL' do
27
+ Rails.env = ActiveSupport::StringInquirer.new('postgresql')
28
+ connect_active_record
29
+ BackupFoundation.store_app('asdf') { backup_db }
30
+ expect(BackupFoundation.items[0][:type]).to eq(:postgresql)
31
+ end
32
+
33
+ it 'recognizes MySQL' do
34
+ Rails.env = ActiveSupport::StringInquirer.new('mysql')
35
+ connect_active_record
36
+ BackupFoundation.store_app('asdf') { backup_db }
37
+ expect(BackupFoundation.items[0][:type]).to eq(:mysql)
38
+ end
39
+ end
40
+
41
+ describe '::make_backup!'
42
+ describe '::restore_backup!'
43
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe BackupFoundation::Item::Base do
4
+ describe '#outfile_path' do
5
+ it 'sets the output file name for non-encrypted items' do
6
+ expect(BackupFoundation::Item::Base.new({ database: 'db' }, '/tmp').outfile_path).to eq('/tmp/db.gz')
7
+ end
8
+
9
+ it 'sets the output file name for encrypted items' do
10
+ expect(BackupFoundation::Item::Base.new({ database: 'db' }, '/tmp', 'asdf').outfile_path).to eq('/tmp/db.gz.gpg')
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'rails'
4
+ require 'active_record'
5
+ require 'pry'
6
+
7
+ require File.join(File.dirname(__FILE__),'support/helper')
8
+ require 'backup_foundation'
9
+
10
+
11
+
12
+ RSpec.configure do |c|
13
+ c.include Helper
14
+ end
@@ -0,0 +1,23 @@
1
+ sqlite:
2
+ adapter: sqlite3
3
+ pool: 5
4
+ timeout: 5000
5
+ database: './db.sqlite3'
6
+
7
+ postgresql:
8
+ adapter: postgresql
9
+ database: backup_foundation
10
+ pool: 100
11
+ timeout: 1000
12
+ username: postgres
13
+ password: postgres
14
+ host: 127.0.0.1
15
+
16
+ mysql:
17
+ adapter: mysql2
18
+ encoding: utf8
19
+ database: backup_foundation
20
+ pool: 5
21
+ username: postgres
22
+ password: postgres
23
+ socket: /var/run/mysqld/mysqld.sock
@@ -0,0 +1,8 @@
1
+ require 'yaml'
2
+
3
+ module Helper
4
+ def connect_active_record
5
+ ActiveRecord::Base.configurations = YAML::load(File.open(File.join(File.dirname(__FILE__), 'database.yml')))
6
+ ActiveRecord::Base.establish_connection
7
+ end
8
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backup_foundation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Shaydurov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-22 00:00:00.000000000 Z
11
+ date: 2014-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: multi_json
28
+ name: multipart-post
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,63 +39,35 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: multipart-post
42
+ name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
- type: :runtime
48
+ type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: bundler
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.6'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.6'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rspec
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - "~>"
59
+ - - ">="
74
60
  - !ruby/object:Gem::Version
75
- version: 2.5.0
61
+ version: '0'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - "~>"
66
+ - - ">="
81
67
  - !ruby/object:Gem::Version
82
- version: 2.5.0
68
+ version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rspec-rails
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 2.5.0
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 2.5.0
97
- - !ruby/object:Gem::Dependency
98
- name: mongo_mapper
99
71
  requirement: !ruby/object:Gem::Requirement
100
72
  requirements:
101
73
  - - ">="
@@ -109,21 +81,21 @@ dependencies:
109
81
  - !ruby/object:Gem::Version
110
82
  version: '0'
111
83
  - !ruby/object:Gem::Dependency
112
- name: mongoid
84
+ name: sqlite3
113
85
  requirement: !ruby/object:Gem::Requirement
114
86
  requirements:
115
- - - "~>"
87
+ - - ">="
116
88
  - !ruby/object:Gem::Version
117
- version: 2.4.4
89
+ version: '0'
118
90
  type: :development
119
91
  prerelease: false
120
92
  version_requirements: !ruby/object:Gem::Requirement
121
93
  requirements:
122
- - - "~>"
94
+ - - ">="
123
95
  - !ruby/object:Gem::Version
124
- version: 2.4.4
96
+ version: '0'
125
97
  - !ruby/object:Gem::Dependency
126
- name: sqlite3
98
+ name: mysql2
127
99
  requirement: !ruby/object:Gem::Requirement
128
100
  requirements:
129
101
  - - ">="
@@ -137,7 +109,7 @@ dependencies:
137
109
  - !ruby/object:Gem::Version
138
110
  version: '0'
139
111
  - !ruby/object:Gem::Dependency
140
- name: mysql2
112
+ name: pg
141
113
  requirement: !ruby/object:Gem::Requirement
142
114
  requirements:
143
115
  - - ">="
@@ -151,7 +123,7 @@ dependencies:
151
123
  - !ruby/object:Gem::Version
152
124
  version: '0'
153
125
  - !ruby/object:Gem::Dependency
154
- name: pg
126
+ name: activerecord
155
127
  requirement: !ruby/object:Gem::Requirement
156
128
  requirements:
157
129
  - - ">="
@@ -165,7 +137,7 @@ dependencies:
165
137
  - !ruby/object:Gem::Version
166
138
  version: '0'
167
139
  - !ruby/object:Gem::Dependency
168
- name: whenever
140
+ name: pry
169
141
  requirement: !ruby/object:Gem::Requirement
170
142
  requirements:
171
143
  - - ">="
@@ -186,6 +158,7 @@ extensions: []
186
158
  extra_rdoc_files: []
187
159
  files:
188
160
  - ".gitignore"
161
+ - ".rspec"
189
162
  - Gemfile
190
163
  - LICENSE.txt
191
164
  - README.md
@@ -195,17 +168,23 @@ files:
195
168
  - lib/backup_foundation/capistrano.rb
196
169
  - lib/backup_foundation/capistrano/v2.rb
197
170
  - lib/backup_foundation/capistrano/v3.rb
198
- - lib/backup_foundation/db/base.rb
199
- - lib/backup_foundation/db/databases.rb
200
- - lib/backup_foundation/db/mysql.rb
201
- - lib/backup_foundation/db/postgresql.rb
202
- - lib/backup_foundation/db/sqlite.rb
171
+ - lib/backup_foundation/item/base.rb
172
+ - lib/backup_foundation/item/directory.rb
173
+ - lib/backup_foundation/item/items.rb
174
+ - lib/backup_foundation/item/mysql.rb
175
+ - lib/backup_foundation/item/postgresql.rb
176
+ - lib/backup_foundation/item/sqlite.rb
203
177
  - lib/backup_foundation/job.rb
204
178
  - lib/backup_foundation/railtie.rb
205
179
  - lib/backup_foundation/tasks/backup_foundation.rake
206
180
  - lib/backup_foundation/version.rb
207
181
  - lib/generators/backup_foundation/install_generator.rb
208
182
  - lib/generators/backup_foundation/templates/initializer.rb
183
+ - spec/backup_foundation_spec.rb
184
+ - spec/db/base_spec.rb
185
+ - spec/spec_helper.rb
186
+ - spec/support/database.yml
187
+ - spec/support/helper.rb
209
188
  homepage: https://backup.foundation
210
189
  licenses:
211
190
  - MIT
@@ -230,4 +209,9 @@ rubygems_version: 2.2.2
230
209
  signing_key:
231
210
  specification_version: 4
232
211
  summary: A client for cloud backuping service Backup.Foundation
233
- test_files: []
212
+ test_files:
213
+ - spec/backup_foundation_spec.rb
214
+ - spec/db/base_spec.rb
215
+ - spec/spec_helper.rb
216
+ - spec/support/database.yml
217
+ - spec/support/helper.rb
@@ -1,14 +0,0 @@
1
- module BackupFoundation
2
- module DB
3
- autoload :Base, 'backup_foundation/db/base'
4
- autoload :MySQL, 'backup_foundation/db/mysql'
5
- autoload :PostgreSQL, 'backup_foundation/db/postgresql'
6
- autoload :SQLite, 'backup_foundation/db/sqlite'
7
-
8
- DATABASES = {
9
- mysql: BackupFoundation::DB::MySQL,
10
- postgresql: BackupFoundation::DB::PostgreSQL,
11
- sqlite: BackupFoundation::DB::SQLite
12
- }
13
- end
14
- end