bibliotech 0.4.1 → 0.5.0
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 +4 -4
- data/lib/bibliotech/builders/postgres.rb +12 -2
- data/lib/bibliotech/config.rb +17 -13
- data/spec/bibliotech/command_generator/postgres_spec.rb +3 -1
- data/spec/bibliotech/config_spec.rb +79 -51
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b04dc447d4669ffeabae2e9ac1038121ff6f2708
|
4
|
+
data.tar.gz: 2d77acb36eee2bca70ad337af529675423a498a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02fff89fe07d885f4982bb14e740baabf6b0f6f2312e9754f6909dca820e7c5a92085f338be0ef93513d9dbfa960080889461e9f23104dc2317df831f67908fe
|
7
|
+
data.tar.gz: e025eb2eb129bdfef117968848896a4a249f311986f2779b8d2b9d08c2932daf527161e581f3bdaddef0814a1cdcd257fc9d539e1d3c56a644ad7bae75e0cc25
|
@@ -14,7 +14,12 @@ module BiblioTech
|
|
14
14
|
config.optional{ command.env["PGPASSWORD"] = config.password }
|
15
15
|
config.optional{ command.options << "-p #{config.port}" } #ok
|
16
16
|
|
17
|
-
|
17
|
+
if config.local == "development"
|
18
|
+
config.optional{ command.options << "-U #{config.username}" }
|
19
|
+
else
|
20
|
+
command.options << "-U #{config.username}"
|
21
|
+
end
|
22
|
+
|
18
23
|
command.options << "#{config.database}"
|
19
24
|
command
|
20
25
|
end
|
@@ -32,7 +37,12 @@ module BiblioTech
|
|
32
37
|
config.optional{ command.env["PGPASSWORD"] = config.password }
|
33
38
|
config.optional{ command.options << "-p #{config.port}" } #ok
|
34
39
|
|
35
|
-
|
40
|
+
if config.local == "development"
|
41
|
+
config.optional{ command.options << "-U #{config.username}" }
|
42
|
+
else
|
43
|
+
command.options << "-U #{config.username}"
|
44
|
+
end
|
45
|
+
|
36
46
|
command.options << "-d #{config.database}"
|
37
47
|
command
|
38
48
|
end
|
data/lib/bibliotech/config.rb
CHANGED
@@ -254,7 +254,11 @@ module BiblioTech
|
|
254
254
|
end
|
255
255
|
|
256
256
|
def database_config
|
257
|
-
|
257
|
+
local_get(:database_config)
|
258
|
+
end
|
259
|
+
|
260
|
+
def app_db_config
|
261
|
+
@app_db_config ||=
|
258
262
|
begin
|
259
263
|
db_config = YAML::load(File::read(local_get(:database_config_file)))
|
260
264
|
db_config.fetch(local_get(:database_config_env)) do
|
@@ -264,6 +268,12 @@ module BiblioTech
|
|
264
268
|
end
|
265
269
|
end
|
266
270
|
|
271
|
+
def db_get(field)
|
272
|
+
local_get(field)
|
273
|
+
rescue MissingConfig
|
274
|
+
app_db_config.fetch(steps_for(field).last)
|
275
|
+
end
|
276
|
+
|
267
277
|
#@group File management
|
268
278
|
def backup_file
|
269
279
|
local_get(:file)
|
@@ -294,33 +304,27 @@ module BiblioTech
|
|
294
304
|
|
295
305
|
#@group Database
|
296
306
|
def adapter
|
297
|
-
|
298
|
-
local_get(:db_adapter)
|
307
|
+
db_get(:db_adapter)
|
299
308
|
end
|
300
309
|
|
301
310
|
def host
|
302
|
-
|
303
|
-
local_get(:db_host)
|
311
|
+
db_get(:db_host)
|
304
312
|
end
|
305
313
|
|
306
314
|
def port
|
307
|
-
|
308
|
-
local_get(:db_port)
|
315
|
+
db_get(:db_port)
|
309
316
|
end
|
310
317
|
|
311
318
|
def username
|
312
|
-
|
313
|
-
local_get(:db_username)
|
319
|
+
db_get(:db_username)
|
314
320
|
end
|
315
321
|
|
316
322
|
def database
|
317
|
-
|
318
|
-
local_get(:db_database)
|
323
|
+
db_get(:db_database)
|
319
324
|
end
|
320
325
|
|
321
326
|
def password
|
322
|
-
|
323
|
-
local_get(:db_password)
|
327
|
+
db_get(:db_password)
|
324
328
|
end
|
325
329
|
#@endgroup
|
326
330
|
end
|
@@ -1,64 +1,92 @@
|
|
1
1
|
require 'valise'
|
2
2
|
require 'spec_helper'
|
3
|
+
require 'file-sandbox'
|
3
4
|
|
4
5
|
module BiblioTech
|
5
6
|
describe Config do
|
6
7
|
include FileSandbox
|
7
8
|
|
8
|
-
describe
|
9
|
+
describe "datatbase.yml" do
|
9
10
|
before :each do
|
10
11
|
sandbox.new :file => 'config/database.yml', :with_contents => YAML::dump(
|
11
12
|
{
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
13
|
+
"development" =>
|
14
|
+
{ "username" => 'root',
|
15
|
+
"database" => 'dev_db',
|
16
|
+
"adapter" => 'mysql',
|
17
|
+
},
|
18
|
+
"production" =>
|
19
|
+
{ "username" => 'root',
|
20
|
+
"database" => 'prod_db',
|
21
|
+
"adapter" => 'mysql2',
|
22
|
+
}
|
23
|
+
})
|
23
24
|
end
|
24
25
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
26
|
+
describe 'initialization' do
|
27
|
+
let :valise do
|
28
|
+
Valise.define do
|
29
|
+
defaults do
|
30
|
+
file "config.yaml", {
|
31
|
+
"database_config_file" => "config/database.yml",
|
32
|
+
"database_config_env" => "development",
|
33
|
+
}
|
34
|
+
end
|
32
35
|
end
|
33
36
|
end
|
34
|
-
end
|
35
37
|
|
36
|
-
|
37
|
-
|
38
|
-
|
38
|
+
subject :config do
|
39
|
+
BiblioTech::Config.new(valise)
|
40
|
+
end
|
41
|
+
|
42
|
+
context "if the file contains database configs" do
|
43
|
+
context "with default(development) environment" do
|
44
|
+
it "should make the development hash available at config" do
|
45
|
+
expect(config.database).to eql "dev_db"
|
46
|
+
end
|
47
|
+
end
|
39
48
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
49
|
+
context "with specified environment" do
|
50
|
+
it "should make the string-specified hash available at config" do
|
51
|
+
expect(config.merge("database_config_env" => "production").database).to eql "prod_db"
|
52
|
+
end
|
44
53
|
end
|
45
54
|
end
|
46
55
|
|
47
|
-
context "
|
48
|
-
|
49
|
-
|
56
|
+
context "when the file contains bad configs" do
|
57
|
+
context "with no matching environment" do
|
58
|
+
it "should raise an error" do
|
59
|
+
expect do
|
60
|
+
config.merge("database_config_env" => "only_for_pretend").database
|
61
|
+
end.to raise_error(KeyError)
|
62
|
+
end
|
50
63
|
end
|
51
64
|
end
|
52
65
|
end
|
53
66
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
config.
|
59
|
-
|
67
|
+
describe "partial override of database.yml" do
|
68
|
+
let :valise do
|
69
|
+
Valise.define do
|
70
|
+
defaults do
|
71
|
+
file "config.yaml", {
|
72
|
+
"database_config_file" => "config/database.yml",
|
73
|
+
"database_config_env" => "development",
|
74
|
+
"database_config" => {
|
75
|
+
"username" => "codemonkey"
|
76
|
+
}
|
77
|
+
}
|
78
|
+
end
|
60
79
|
end
|
61
80
|
end
|
81
|
+
|
82
|
+
subject :config do
|
83
|
+
BiblioTech::Config.new(valise)
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should blend the bibliotech config and Rails config" do
|
87
|
+
expect(config.database).to eql("dev_db")
|
88
|
+
expect(config.username).to eql("codemonkey")
|
89
|
+
end
|
62
90
|
end
|
63
91
|
end
|
64
92
|
|
@@ -83,9 +111,9 @@ module BiblioTech
|
|
83
111
|
{ "backups" => {
|
84
112
|
"frequency" => 60,
|
85
113
|
"keep" => {
|
86
|
-
|
87
|
-
|
88
|
-
|
114
|
+
60 => 24,
|
115
|
+
1440 => 7
|
116
|
+
}}}
|
89
117
|
end
|
90
118
|
|
91
119
|
let :schedule_array do
|
@@ -105,9 +133,9 @@ module BiblioTech
|
|
105
133
|
{ "backups" => {
|
106
134
|
"frequency" => 59,
|
107
135
|
"keep" => {
|
108
|
-
|
109
|
-
|
110
|
-
|
136
|
+
60 => 24,
|
137
|
+
1440 => 7
|
138
|
+
}}}
|
111
139
|
end
|
112
140
|
|
113
141
|
it "should raise an error" do
|
@@ -122,10 +150,10 @@ module BiblioTech
|
|
122
150
|
{ "backups" => {
|
123
151
|
"frequency" => "sometimes",
|
124
152
|
"keep" => {
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
153
|
+
"often" => 24,
|
154
|
+
"regular" => 7,
|
155
|
+
"chocolate" => 4
|
156
|
+
}}}
|
129
157
|
end
|
130
158
|
|
131
159
|
it "should raise an error" do
|
@@ -140,11 +168,11 @@ module BiblioTech
|
|
140
168
|
{ "backups" => {
|
141
169
|
"frequency" => "hourly",
|
142
170
|
"keep" => {
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
171
|
+
"hourlies" => 24,
|
172
|
+
"daily" => 7,
|
173
|
+
"weeklies" => 4,
|
174
|
+
"monthly" => "all"
|
175
|
+
}}}
|
148
176
|
end
|
149
177
|
|
150
178
|
it "should produce correct schedule" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bibliotech
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Dorn
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-05-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: caliph
|
@@ -130,7 +130,7 @@ rdoc_options:
|
|
130
130
|
- --main
|
131
131
|
- doc/README
|
132
132
|
- --title
|
133
|
-
- bibliotech-0.
|
133
|
+
- bibliotech-0.5.0 Documentation
|
134
134
|
require_paths:
|
135
135
|
- lib/
|
136
136
|
required_ruby_version: !ruby/object:Gem::Requirement
|