chamber 2.10.1 → 2.10.2
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/chamber/encryption_methods/none.rb +2 -0
- data/lib/chamber/version.rb +1 -1
- metadata +22 -99
- metadata.gz.sig +0 -0
- data/spec/fixtures/settings.yml +0 -28
- data/spec/lib/chamber/commands/files_spec.rb +0 -24
- data/spec/lib/chamber/commands/heroku/clear_spec.rb +0 -12
- data/spec/lib/chamber/commands/heroku/compare_spec.rb +0 -12
- data/spec/lib/chamber/commands/heroku/pull_spec.rb +0 -12
- data/spec/lib/chamber/commands/heroku/push_spec.rb +0 -12
- data/spec/lib/chamber/commands/secure_spec.rb +0 -42
- data/spec/lib/chamber/commands/show_spec.rb +0 -59
- data/spec/lib/chamber/context_resolver_spec.rb +0 -164
- data/spec/lib/chamber/file_set_spec.rb +0 -250
- data/spec/lib/chamber/file_spec.rb +0 -241
- data/spec/lib/chamber/filters/boolean_conversion_filter_spec.rb +0 -57
- data/spec/lib/chamber/filters/decryption_filter_spec.rb +0 -252
- data/spec/lib/chamber/filters/encryption_filter_spec.rb +0 -195
- data/spec/lib/chamber/filters/environment_filter_spec.rb +0 -48
- data/spec/lib/chamber/filters/failed_decryption_filter_spec.rb +0 -54
- data/spec/lib/chamber/filters/insecure_filter_spec.rb +0 -82
- data/spec/lib/chamber/filters/namespace_filter_spec.rb +0 -92
- data/spec/lib/chamber/filters/secure_filter_spec.rb +0 -41
- data/spec/lib/chamber/filters/translate_secure_keys_filter_spec.rb +0 -39
- data/spec/lib/chamber/namespace_set_spec.rb +0 -129
- data/spec/lib/chamber/settings_spec.rb +0 -390
- data/spec/lib/chamber/types/secured_spec.rb +0 -70
- data/spec/lib/chamber_spec.rb +0 -314
- data/spec/rails-2-test/config.ru +0 -0
- data/spec/rails-2-test/config/application.rb +0 -6
- data/spec/rails-2-test/script/console +0 -0
- data/spec/rails-3-test/config.ru +0 -0
- data/spec/rails-3-test/config/application.rb +0 -6
- data/spec/rails-3-test/script/rails +0 -0
- data/spec/rails-4-test/bin/rails +0 -0
- data/spec/rails-4-test/config.ru +0 -0
- data/spec/rails-4-test/config/application.rb +0 -6
- data/spec/rails-engine-test/spec/dummy/config.ru +0 -0
- data/spec/rails-engine-test/spec/dummy/config/application.rb +0 -5
- data/spec/rails-engine-test/spec/dummy/script/rails +0 -0
- data/spec/spec_key +0 -27
- data/spec/spec_key.pub +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9edabd92ed2fb227cb36bef070841da66a318d4e
|
4
|
+
data.tar.gz: 773b623a400e9135391616bd93bd9b4b07ca8b87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8986c275bcf25008895491027fff6015dd7ea0a0685e428e0b2464d62a9e5a9c96d22938a9d12469cb48c63a2de794467701e5dd7c1a1b38daa3e7bfe13d3190
|
7
|
+
data.tar.gz: ab14d195f86e79e1f974f38bb6a73c3b2bee9437a82fe47fbb54c0290821720df364be375cbbb8fcdb92d271c430e2e6ed17c5edd2468eb2a4e3b2a862fec7d8
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
@@ -6,6 +6,8 @@ class None
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def self.decrypt(key, value, _decryption_key)
|
9
|
+
return value if value.nil?
|
10
|
+
|
9
11
|
warn "WARNING: It appears that you would like to keep your information for #{key} " \
|
10
12
|
"secure, however the value for that setting does not appear to be encrypted. " \
|
11
13
|
"Make sure you run 'chamber secure' before committing."
|
data/lib/chamber/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chamber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.10.
|
4
|
+
version: 2.10.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- thekompanee
|
@@ -15,26 +15,26 @@ cert_chain:
|
|
15
15
|
-----BEGIN CERTIFICATE-----
|
16
16
|
MIIDrjCCApagAwIBAgIBATANBgkqhkiG9w0BAQUFADBOMRowGAYDVQQDDBFhY2Nv
|
17
17
|
dW50c19ydWJ5Z2VtczEbMBkGCgmSJomT8ixkARkWC3RoZWtvbXBhbmVlMRMwEQYK
|
18
|
-
|
18
|
+
CZImiZPyLGQBGRYDY29tMB4XDTE3MDgwMjIyNTYzMVoXDTE4MDgwMjIyNTYzMVow
|
19
19
|
TjEaMBgGA1UEAwwRYWNjb3VudHNfcnVieWdlbXMxGzAZBgoJkiaJk/IsZAEZFgt0
|
20
20
|
aGVrb21wYW5lZTETMBEGCgmSJomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEB
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
21
|
+
BQADggEPADCCAQoCggEBAMc4QXE2KJeQa7s4KChv4ZAfRhflgunXNocdi2rDNCTv
|
22
|
+
wLkjoNxDCSkKj8C95dSZVwMy92DqdIbC7ppVTfApXbRxB7BoeY7fWf0EmOQUZ2aa
|
23
|
+
FS7QR1OrSVkxZ0rJ6B90ANl8DATLbg/xlw5vxiI/OMva5qt1W2Lmwy6Rl+R6Fr2W
|
24
|
+
z90rabN3hQE6J8UItT06QENBWtkypCAjb3fZ513/lw/BvM3vJjZ4/J/dLLHsbmqw
|
25
|
+
k6WCuasYf2+Fv7O3/ffdVqKtudf4/Y9B1vVEYIaxoxtsm1UHvVWm+RphyXgsSLe7
|
26
|
+
UjoAVW+m0wft3rsmuV1BC9mpUztNATGqYLrpPcoN66cCAwEAAaOBljCBkzAJBgNV
|
27
|
+
HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUxAKay6wGYqob8tw4Nr2GP31+
|
28
|
+
NckwLAYDVR0RBCUwI4EhYWNjb3VudHMrcnVieWdlbXNAdGhla29tcGFuZWUuY29t
|
29
29
|
MCwGA1UdEgQlMCOBIWFjY291bnRzK3J1YnlnZW1zQHRoZWtvbXBhbmVlLmNvbTAN
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
BgkqhkiG9w0BAQUFAAOCAQEAekAixhDiCyu4LvqVIEfNkb9DSCsNUQOCgwX2ppj5
|
31
|
+
dfOq0yEABaMNGs5QJZUGXwXI5PHfSrsh8yNXUvofB9A5CE/M7z1nqifAYyjBhQse
|
32
|
+
trwZaMUUjIkPVYBCBHnIIRV5r3nQaJRJSBejcJ9rZBiPB+Fy8pumpxTQ4iD28bVh
|
33
|
+
z3hlqH0da2pJJ8dJpGka9VS5RJMljl4CmPGfp0xBhaP8SiQ0ROudY2hl41CxoM4u
|
34
|
+
D+octMUn1lW1R5TY2r8c6lPvU4otU+9/N9CQP/qPfjpfdjndm4AT9WOElnbqouuF
|
35
|
+
CI6ZwNuD9jNYJxrNrpdkOUZVPEr6PoPdArhjNQevWG3zbg==
|
36
36
|
-----END CERTIFICATE-----
|
37
|
-
date: 2017-
|
37
|
+
date: 2017-12-30 00:00:00.000000000 Z
|
38
38
|
dependencies:
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: thor
|
@@ -120,10 +120,9 @@ dependencies:
|
|
120
120
|
- - "~>"
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '5.0'
|
123
|
-
description:
|
124
|
-
|
125
|
-
|
126
|
-
to how Heroku addons work.\n "
|
123
|
+
description: Chamber lets you source your Settings from an arbitrary number of YAML
|
124
|
+
files and provides a simple mechanism for overriding settings from the ENV, which
|
125
|
+
is friendly to how Heroku addons work.
|
127
126
|
email: hello@thekompanee.com
|
128
127
|
executables:
|
129
128
|
- chamber
|
@@ -179,44 +178,6 @@ files:
|
|
179
178
|
- lib/chamber/settings.rb
|
180
179
|
- lib/chamber/types/secured.rb
|
181
180
|
- lib/chamber/version.rb
|
182
|
-
- spec/fixtures/settings.yml
|
183
|
-
- spec/lib/chamber/commands/files_spec.rb
|
184
|
-
- spec/lib/chamber/commands/heroku/clear_spec.rb
|
185
|
-
- spec/lib/chamber/commands/heroku/compare_spec.rb
|
186
|
-
- spec/lib/chamber/commands/heroku/pull_spec.rb
|
187
|
-
- spec/lib/chamber/commands/heroku/push_spec.rb
|
188
|
-
- spec/lib/chamber/commands/secure_spec.rb
|
189
|
-
- spec/lib/chamber/commands/show_spec.rb
|
190
|
-
- spec/lib/chamber/context_resolver_spec.rb
|
191
|
-
- spec/lib/chamber/file_set_spec.rb
|
192
|
-
- spec/lib/chamber/file_spec.rb
|
193
|
-
- spec/lib/chamber/filters/boolean_conversion_filter_spec.rb
|
194
|
-
- spec/lib/chamber/filters/decryption_filter_spec.rb
|
195
|
-
- spec/lib/chamber/filters/encryption_filter_spec.rb
|
196
|
-
- spec/lib/chamber/filters/environment_filter_spec.rb
|
197
|
-
- spec/lib/chamber/filters/failed_decryption_filter_spec.rb
|
198
|
-
- spec/lib/chamber/filters/insecure_filter_spec.rb
|
199
|
-
- spec/lib/chamber/filters/namespace_filter_spec.rb
|
200
|
-
- spec/lib/chamber/filters/secure_filter_spec.rb
|
201
|
-
- spec/lib/chamber/filters/translate_secure_keys_filter_spec.rb
|
202
|
-
- spec/lib/chamber/namespace_set_spec.rb
|
203
|
-
- spec/lib/chamber/settings_spec.rb
|
204
|
-
- spec/lib/chamber/types/secured_spec.rb
|
205
|
-
- spec/lib/chamber_spec.rb
|
206
|
-
- spec/rails-2-test/config.ru
|
207
|
-
- spec/rails-2-test/config/application.rb
|
208
|
-
- spec/rails-2-test/script/console
|
209
|
-
- spec/rails-3-test/config.ru
|
210
|
-
- spec/rails-3-test/config/application.rb
|
211
|
-
- spec/rails-3-test/script/rails
|
212
|
-
- spec/rails-4-test/bin/rails
|
213
|
-
- spec/rails-4-test/config.ru
|
214
|
-
- spec/rails-4-test/config/application.rb
|
215
|
-
- spec/rails-engine-test/spec/dummy/config.ru
|
216
|
-
- spec/rails-engine-test/spec/dummy/config/application.rb
|
217
|
-
- spec/rails-engine-test/spec/dummy/script/rails
|
218
|
-
- spec/spec_key
|
219
|
-
- spec/spec_key.pub
|
220
181
|
- templates/settings.yml
|
221
182
|
homepage: https://github.com/thekompanee/chamber
|
222
183
|
licenses:
|
@@ -239,47 +200,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
239
200
|
version: '0'
|
240
201
|
requirements: []
|
241
202
|
rubyforge_project:
|
242
|
-
rubygems_version: 2.6.
|
203
|
+
rubygems_version: 2.6.14
|
243
204
|
signing_key:
|
244
205
|
specification_version: 4
|
245
206
|
summary: A surprisingly configurable convention-based approach to managing your application's
|
246
207
|
custom configuration settings.
|
247
|
-
test_files:
|
248
|
-
- spec/fixtures/settings.yml
|
249
|
-
- spec/lib/chamber/commands/files_spec.rb
|
250
|
-
- spec/lib/chamber/commands/heroku/clear_spec.rb
|
251
|
-
- spec/lib/chamber/commands/heroku/compare_spec.rb
|
252
|
-
- spec/lib/chamber/commands/heroku/pull_spec.rb
|
253
|
-
- spec/lib/chamber/commands/heroku/push_spec.rb
|
254
|
-
- spec/lib/chamber/commands/secure_spec.rb
|
255
|
-
- spec/lib/chamber/commands/show_spec.rb
|
256
|
-
- spec/lib/chamber/context_resolver_spec.rb
|
257
|
-
- spec/lib/chamber/file_set_spec.rb
|
258
|
-
- spec/lib/chamber/file_spec.rb
|
259
|
-
- spec/lib/chamber/filters/boolean_conversion_filter_spec.rb
|
260
|
-
- spec/lib/chamber/filters/decryption_filter_spec.rb
|
261
|
-
- spec/lib/chamber/filters/encryption_filter_spec.rb
|
262
|
-
- spec/lib/chamber/filters/environment_filter_spec.rb
|
263
|
-
- spec/lib/chamber/filters/failed_decryption_filter_spec.rb
|
264
|
-
- spec/lib/chamber/filters/insecure_filter_spec.rb
|
265
|
-
- spec/lib/chamber/filters/namespace_filter_spec.rb
|
266
|
-
- spec/lib/chamber/filters/secure_filter_spec.rb
|
267
|
-
- spec/lib/chamber/filters/translate_secure_keys_filter_spec.rb
|
268
|
-
- spec/lib/chamber/namespace_set_spec.rb
|
269
|
-
- spec/lib/chamber/settings_spec.rb
|
270
|
-
- spec/lib/chamber/types/secured_spec.rb
|
271
|
-
- spec/lib/chamber_spec.rb
|
272
|
-
- spec/rails-2-test/config/application.rb
|
273
|
-
- spec/rails-2-test/config.ru
|
274
|
-
- spec/rails-2-test/script/console
|
275
|
-
- spec/rails-3-test/config/application.rb
|
276
|
-
- spec/rails-3-test/config.ru
|
277
|
-
- spec/rails-3-test/script/rails
|
278
|
-
- spec/rails-4-test/bin/rails
|
279
|
-
- spec/rails-4-test/config/application.rb
|
280
|
-
- spec/rails-4-test/config.ru
|
281
|
-
- spec/rails-engine-test/spec/dummy/config/application.rb
|
282
|
-
- spec/rails-engine-test/spec/dummy/config.ru
|
283
|
-
- spec/rails-engine-test/spec/dummy/script/rails
|
284
|
-
- spec/spec_key
|
285
|
-
- spec/spec_key.pub
|
208
|
+
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|
data/spec/fixtures/settings.yml
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
---
|
2
|
-
development:
|
3
|
-
my_setting: my_dev_value
|
4
|
-
my_boolean: 'false'
|
5
|
-
my_dynamic_setting: 3
|
6
|
-
another_level:
|
7
|
-
setting_one: 1
|
8
|
-
setting_two: 4
|
9
|
-
level_three:
|
10
|
-
an_array:
|
11
|
-
- item 8
|
12
|
-
- item 2
|
13
|
-
- item 0
|
14
|
-
a_scalar: hello
|
15
|
-
test:
|
16
|
-
my_setting: my_value
|
17
|
-
_secure_my_secure_settings: 'M3yI2fIHsfD+zznsvO3FB/ryCwvvdQQ9ZXPQlTIR6Y9vtzNFAeRAxZpSyYUdOpeMDkWQSo5ZVLseM20iTh1YpNCjzd7D0bT4O9aBskYBE92b4ioYPAPSZ3NcvA1pGa6A/hWGo3iJZK1t96mGrfxy2mSFFqGHQbj4ix6D7PpCfVkjuUMp3NG3XjgGhmynK88XENWXBQfgxdfwylZZSQTm058BubkuM5MXgf4WGL3qWo+wWk9AOwjohAGq3UAf5Q341g/OlPGbCV3rBPTnlm866N8aAsHtppg5HwbknaySpLMPcv0KhUGC/bEPgbm3tuG7JZKsoqvDmWr/I+LjVi/LKg=='
|
18
|
-
my_boolean: 'false'
|
19
|
-
my_dynamic_setting: 2
|
20
|
-
another_level:
|
21
|
-
setting_one: 1
|
22
|
-
setting_two: 2
|
23
|
-
level_three:
|
24
|
-
an_array:
|
25
|
-
- item 1
|
26
|
-
- item 2
|
27
|
-
- item 3
|
28
|
-
a_scalar: hello
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'rspectacular'
|
3
|
-
require 'chamber/commands/files'
|
4
|
-
|
5
|
-
module Chamber
|
6
|
-
module Commands
|
7
|
-
describe Files do
|
8
|
-
let(:rootpath) { ::File.expand_path('./spec/fixtures') }
|
9
|
-
let(:options) do
|
10
|
-
{
|
11
|
-
basepath: rootpath,
|
12
|
-
rootpath: rootpath,
|
13
|
-
}
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'can return values formatted as environment variables' do
|
17
|
-
files = Files.call(options)
|
18
|
-
|
19
|
-
expect(files.size).to eql 1
|
20
|
-
expect(files.first).to include 'spec/fixtures/settings.yml'
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'rspectacular'
|
3
|
-
require 'chamber/commands/secure'
|
4
|
-
require 'fileutils'
|
5
|
-
|
6
|
-
module Chamber
|
7
|
-
module Commands
|
8
|
-
describe Secure do
|
9
|
-
let(:rootpath) { Pathname.new(::File.expand_path('./spec/fixtures')) }
|
10
|
-
let(:settings_directory) { rootpath + 'settings' }
|
11
|
-
let(:settings_filename) { settings_directory + 'unencrypted.yml' }
|
12
|
-
let(:options) do
|
13
|
-
{
|
14
|
-
basepath: rootpath,
|
15
|
-
rootpath: rootpath,
|
16
|
-
encryption_key: rootpath + '../spec_key',
|
17
|
-
shell: double.as_null_object,
|
18
|
-
}
|
19
|
-
end
|
20
|
-
|
21
|
-
before(:each) do
|
22
|
-
::FileUtils.mkdir_p settings_directory unless ::File.exist? settings_directory
|
23
|
-
end
|
24
|
-
|
25
|
-
after(:each) do
|
26
|
-
::FileUtils.rm_rf(settings_directory) if ::File.exist? settings_directory
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'can return values formatted as environment variables' do
|
30
|
-
settings_filename.write <<-HEREDOC
|
31
|
-
test:
|
32
|
-
_secure_my_unencrpyted_setting: hello
|
33
|
-
HEREDOC
|
34
|
-
|
35
|
-
Secure.call(options)
|
36
|
-
|
37
|
-
expect(settings_filename.read).
|
38
|
-
to match %r{_secure_my_unencrpyted_setting: [A-Za-z0-9\+\/]{342}==}
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'rspectacular'
|
3
|
-
require 'chamber/commands/show'
|
4
|
-
|
5
|
-
module Chamber
|
6
|
-
module Commands
|
7
|
-
describe Show do
|
8
|
-
let(:rootpath) { ::File.expand_path('./spec/fixtures') }
|
9
|
-
let(:options) do
|
10
|
-
{
|
11
|
-
basepath: rootpath,
|
12
|
-
rootpath: rootpath,
|
13
|
-
namespaces: 'test',
|
14
|
-
decryption_key: './spec/spec_key',
|
15
|
-
}
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'can return values formatted as environment variables' do
|
19
|
-
expect(Show.call(options.merge(as_env: true))).to eql(
|
20
|
-
<<-HEREDOC.chomp
|
21
|
-
ANOTHER_LEVEL_LEVEL_THREE_A_SCALAR="hello"
|
22
|
-
ANOTHER_LEVEL_LEVEL_THREE_AN_ARRAY="["item 1", "item 2", "item 3"]"
|
23
|
-
ANOTHER_LEVEL_SETTING_ONE="1"
|
24
|
-
ANOTHER_LEVEL_SETTING_TWO="2"
|
25
|
-
MY_BOOLEAN="false"
|
26
|
-
MY_DYNAMIC_SETTING="2"
|
27
|
-
MY_SECURE_SETTINGS="my_secure_value"
|
28
|
-
MY_SETTING="my_value"
|
29
|
-
HEREDOC
|
30
|
-
)
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'can return values filtered by whether or not they are secure' do
|
34
|
-
expect(Show.call(options.merge(as_env: true, only_sensitive: true))).to eql(
|
35
|
-
<<-HEREDOC.chomp
|
36
|
-
MY_SECURE_SETTINGS="my_secure_value"
|
37
|
-
HEREDOC
|
38
|
-
)
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'can return values formatted as a hash' do
|
42
|
-
expect(Show.call(options)).to eql(
|
43
|
-
<<-HEREDOC.chomp
|
44
|
-
{"my_setting"=>"my_value",
|
45
|
-
"my_secure_settings"=>"my_secure_value",
|
46
|
-
"my_boolean"=>false,
|
47
|
-
"my_dynamic_setting"=>2,
|
48
|
-
"another_level"=>
|
49
|
-
{"setting_one"=>1,
|
50
|
-
"setting_two"=>2,
|
51
|
-
"level_three"=>
|
52
|
-
{"an_array"=>["item 1", "item 2", "item 3"],
|
53
|
-
"a_scalar"=>"hello"}}}
|
54
|
-
HEREDOC
|
55
|
-
)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
@@ -1,164 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'rspectacular'
|
3
|
-
require 'chamber/context_resolver'
|
4
|
-
|
5
|
-
module Chamber
|
6
|
-
module Commands
|
7
|
-
describe ContextResolver do
|
8
|
-
let(:rails_2_path) { ::File.expand_path('../../../rails-2-test', __FILE__) }
|
9
|
-
let(:rails_3_path) { ::File.expand_path('../../../rails-3-test', __FILE__) }
|
10
|
-
let(:rails_4_path) { ::File.expand_path('../../../rails-4-test', __FILE__) }
|
11
|
-
let(:rails_engine_path) { ::File.expand_path('../../../rails-engine-test', __FILE__) }
|
12
|
-
|
13
|
-
before(:each) { @old_chamber_key = ENV.delete('CHAMBER_KEY') }
|
14
|
-
after(:each) { ENV['CHAMBER_KEY'] = @old_chamber_key }
|
15
|
-
|
16
|
-
it 'does not attempt to do any resolution if all valid options are passed in' do
|
17
|
-
options = ContextResolver.resolve(basepath: 'my_path',
|
18
|
-
namespaces: 'ns')
|
19
|
-
|
20
|
-
expect(options[:basepath].to_s).to eql 'my_path'
|
21
|
-
expect(options[:namespaces]).to eql 'ns'
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'does not attempt to do any resolution if files are passed in in place of a ' \
|
25
|
-
'basepath' do
|
26
|
-
|
27
|
-
options = ContextResolver.resolve(files: 'my_files',
|
28
|
-
namespaces: 'ns')
|
29
|
-
|
30
|
-
expect(options[:files]).to eql 'my_files'
|
31
|
-
expect(options[:namespaces]).to eql 'ns'
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'defaults the basepath to the rootpath if none is explicitly set' do
|
35
|
-
options = ContextResolver.resolve(rootpath: './app',
|
36
|
-
namespaces: 'ns')
|
37
|
-
|
38
|
-
expect(options[:basepath].to_s).to eql './app'
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'always sets the basepath to a Pathname even if it is passed in as a String' do
|
42
|
-
options = ContextResolver.resolve(basepath: './app')
|
43
|
-
|
44
|
-
expect(options[:basepath]).to be_a Pathname
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'sets the default files if none are passed in' do
|
48
|
-
options = ContextResolver.resolve(basepath: './app')
|
49
|
-
|
50
|
-
expect(options[:files].map(&:to_s)).to eql [
|
51
|
-
'./app/settings*.yml',
|
52
|
-
'./app/settings',
|
53
|
-
]
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'can handle if keys are passed as strings' do
|
57
|
-
options = ContextResolver.resolve('files' => 'my_files',
|
58
|
-
'namespaces' => 'ns')
|
59
|
-
|
60
|
-
expect(options[:files]).to eql 'my_files'
|
61
|
-
expect(options[:namespaces]).to eql 'ns'
|
62
|
-
end
|
63
|
-
|
64
|
-
it 'sets the rootpath to the current working directory if none is passed in' do
|
65
|
-
allow(Pathname).to receive(:pwd).
|
66
|
-
and_return('my_dir')
|
67
|
-
|
68
|
-
options = ContextResolver.resolve
|
69
|
-
|
70
|
-
expect(options[:rootpath].to_s).to eql 'my_dir'
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'sets the encryption key to the default if not passed in' do
|
74
|
-
options = ContextResolver.resolve(rootpath: rails_3_path)
|
75
|
-
|
76
|
-
expect(options[:encryption_key].to_s).to include 'rails-3-test/.chamber.pub.pem'
|
77
|
-
end
|
78
|
-
|
79
|
-
it 'sets the decryption key to the default if not passed in' do
|
80
|
-
options = ContextResolver.resolve(rootpath: rails_3_path)
|
81
|
-
key_contents = ::File.read(rails_3_path + '/.chamber.pem')
|
82
|
-
|
83
|
-
expect(options[:decryption_key].to_s).to eql key_contents
|
84
|
-
end
|
85
|
-
|
86
|
-
it 'sets the decryption key to the value of the CHAMBER_KEY if available' do
|
87
|
-
ENV['CHAMBER_KEY'] = 'my key'
|
88
|
-
|
89
|
-
options = ContextResolver.resolve(rootpath: 'my_path')
|
90
|
-
|
91
|
-
expect(options[:decryption_key].to_s).to eql 'my key'
|
92
|
-
|
93
|
-
ENV['CHAMBER_KEY'] = nil
|
94
|
-
end
|
95
|
-
|
96
|
-
it 'does not set the encryption key if the keyfile does not exist' do
|
97
|
-
options = ContextResolver.resolve(rootpath: './app')
|
98
|
-
|
99
|
-
expect(options[:encryption_key]).to be_nil
|
100
|
-
end
|
101
|
-
|
102
|
-
it 'does not set the decryption key if the keyfile does not exist' do
|
103
|
-
options = ContextResolver.resolve(rootpath: './app')
|
104
|
-
|
105
|
-
expect(options[:decryption_key]).to be_nil
|
106
|
-
end
|
107
|
-
|
108
|
-
it 'sets the information to a Rails preset even if it is not pointing to a Rails app' do
|
109
|
-
options = ContextResolver.resolve(rootpath: './app',
|
110
|
-
preset: 'rails')
|
111
|
-
|
112
|
-
expect(options[:basepath].to_s).to include './app/config'
|
113
|
-
expect(options[:namespaces]).to eql []
|
114
|
-
end
|
115
|
-
|
116
|
-
it 'sets the information to a Rails preset when the rootpath is a Rails app' do
|
117
|
-
allow(Socket).to receive(:gethostname).and_return 'my_host'
|
118
|
-
|
119
|
-
options = ContextResolver.resolve(rootpath: rails_3_path,
|
120
|
-
preset: 'rails')
|
121
|
-
|
122
|
-
expect(options[:basepath].to_s).to include 'rails-3-test/config'
|
123
|
-
expect(options[:namespaces]).to eql %w{development my_host}
|
124
|
-
end
|
125
|
-
|
126
|
-
it 'sets the basepath if inside a Rails 2 project' do
|
127
|
-
allow(Socket).to receive(:gethostname).and_return 'my_host'
|
128
|
-
|
129
|
-
options = ContextResolver.resolve(rootpath: rails_2_path)
|
130
|
-
|
131
|
-
expect(options[:basepath].to_s).to include 'rails-2-test/config'
|
132
|
-
expect(options[:namespaces]).to eql %w{development my_host}
|
133
|
-
end
|
134
|
-
|
135
|
-
it 'sets the basepath if inside a Rails 3 project' do
|
136
|
-
allow(Socket).to receive(:gethostname).and_return 'my_host'
|
137
|
-
|
138
|
-
options = ContextResolver.resolve(rootpath: rails_3_path)
|
139
|
-
|
140
|
-
expect(options[:basepath].to_s).to include 'rails-3-test/config'
|
141
|
-
expect(options[:namespaces]).to eql %w{development my_host}
|
142
|
-
end
|
143
|
-
|
144
|
-
it 'sets the basepath if inside a Rails 4 project' do
|
145
|
-
allow(Socket).to receive(:gethostname).and_return 'my_host'
|
146
|
-
|
147
|
-
options = ContextResolver.resolve(rootpath: rails_4_path)
|
148
|
-
|
149
|
-
expect(options[:basepath].to_s).to include 'rails-4-test/config'
|
150
|
-
expect(options[:namespaces]).to eql %w{development my_host}
|
151
|
-
end
|
152
|
-
|
153
|
-
it 'sets the basepath if inside a Rails engine' do
|
154
|
-
allow(Socket).to receive(:gethostname).and_return 'my_host'
|
155
|
-
|
156
|
-
options = ContextResolver.resolve(rootpath: rails_engine_path)
|
157
|
-
|
158
|
-
expect(options[:rootpath].to_s).to include 'rails-engine-test/spec/dummy'
|
159
|
-
expect(options[:basepath].to_s).to include 'rails-engine-test/spec/dummy/config'
|
160
|
-
expect(options[:namespaces]).to eql %w{development my_host}
|
161
|
-
end
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|