wbconfigurator 0.2.1 → 0.3.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
- data/README.md +2 -6
- data/configurator.gemspec +2 -2
- data/lib/config/app.rb +14 -5
- data/lib/config/version.rb +1 -1
- data/spec/data/test.yaml +2 -0
- data/spec/unit/app_spec.rb +33 -11
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7221ce9fe344bbdd5bb0bf0727973bc941dbdc891b02e6fb87cfaedb86cde835
|
4
|
+
data.tar.gz: a722289ad9338c5dddce25b0fdf2bf872d98429b37fcae1b1576a6c48464f0af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 172b64c6360add9f5d015afd09c6a47c48e5d3bd8d0d5b979e7cab8d088f0308524203010246ff3ca58d4f522ae4796d5e6a2ca24cb1ac540af2d71dfd3c7d59
|
7
|
+
data.tar.gz: 27c4288ace9c6f2979d26b3a8de36fa8285fe4c2168f8ecea9300d6f51409f167720f2dfd33791de27dbe82be430668f3fb6f51f052715b8c9fcbd9ffe140ed9
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@ It allows easy management of specific environment settings with YAML config file
|
|
5
5
|
|
6
6
|
## Usage
|
7
7
|
|
8
|
-
Please see the [wiki](https://github.com/
|
8
|
+
Please see the [wiki](https://github.com/ActiveCampaign/qa-configurator/wiki) for detailed instructions about how to use the tool.
|
9
9
|
|
10
10
|
## Installation
|
11
11
|
|
@@ -24,8 +24,4 @@ Please leave all comments, bugs, requests and issues on the Issues page.
|
|
24
24
|
|
25
25
|
## License
|
26
26
|
|
27
|
-
Configurator library is released under the [MIT](http://www.opensource.org/licenses/mit-license.php) license.
|
28
|
-
|
29
|
-
## Copyright
|
30
|
-
|
31
|
-
Copyright © 2020 Wildbit LLC.
|
27
|
+
Configurator library is released under the [MIT](http://www.opensource.org/licenses/mit-license.php) license.
|
data/configurator.gemspec
CHANGED
@@ -11,14 +11,14 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.license = 'MIT'
|
12
12
|
|
13
13
|
s.authors = ['Igor Balos']
|
14
|
-
s.email = ['ibalosh@gmail.com', '
|
14
|
+
s.email = ['ibalosh@gmail.com', 'ibalos@activecampaign.com']
|
15
15
|
|
16
16
|
s.summary = 'Config tool.'
|
17
17
|
s.description = 'Configuration tool for simple management with yaml files.'
|
18
18
|
|
19
19
|
s.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
20
20
|
s.test_files = `git ls-files -- {spec}/*`.split("\n")
|
21
|
-
s.homepage = 'https://github.com/
|
21
|
+
s.homepage = 'https://github.com/ActiveCampaign/qa-configurator'
|
22
22
|
s.require_paths = ['lib']
|
23
23
|
s.required_rubygems_version = '>= 1.9.3'
|
24
24
|
s.add_dependency 'secure_yaml', '~> 2.0'
|
data/lib/config/app.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'yaml'
|
4
|
-
require 'secure_yaml'
|
5
|
-
require_relative 'patch/secure_yaml/cipher'
|
6
4
|
require 'singleton'
|
7
5
|
require 'ostruct'
|
6
|
+
require 'erb'
|
8
7
|
|
9
8
|
# App::Configuration class helps loading configuration files.
|
10
9
|
#
|
@@ -54,10 +53,12 @@ module App
|
|
54
53
|
FILES_EXTENSION = 'yaml'
|
55
54
|
DEFAULT_ENVIRONMENT = 'production'
|
56
55
|
attr_accessor :environment,
|
57
|
-
:files_path
|
56
|
+
:files_path,
|
57
|
+
:use_secure_yaml
|
58
58
|
|
59
59
|
def initialize
|
60
60
|
@environment = DEFAULT_ENVIRONMENT
|
61
|
+
@use_secure_yaml = false
|
61
62
|
end
|
62
63
|
|
63
64
|
def load_all!
|
@@ -127,7 +128,15 @@ module App
|
|
127
128
|
end
|
128
129
|
|
129
130
|
def load_from_yaml(filename)
|
130
|
-
|
131
|
+
yaml_file = ERB.new(File.read(file_full_path(filename))).result
|
132
|
+
|
133
|
+
if use_secure_yaml
|
134
|
+
require 'secure_yaml'
|
135
|
+
require_relative 'patch/secure_yaml/cipher'
|
136
|
+
SecureYaml.load(yaml_file)
|
137
|
+
else
|
138
|
+
YAML::load(yaml_file)
|
139
|
+
end
|
131
140
|
end
|
132
141
|
|
133
142
|
# generate accessors for loaded data
|
@@ -160,4 +169,4 @@ module App
|
|
160
169
|
def self.clear_config
|
161
170
|
@config = Configurator.new
|
162
171
|
end
|
163
|
-
end
|
172
|
+
end
|
data/lib/config/version.rb
CHANGED
data/spec/data/test.yaml
CHANGED
data/spec/unit/app_spec.rb
CHANGED
@@ -6,21 +6,43 @@ describe 'Configurator' do
|
|
6
6
|
App.config.files_path = File.join(File.dirname(__FILE__), '../data/')
|
7
7
|
end
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
context 'loading' do
|
10
|
+
it '.load_all!' do
|
11
|
+
expect { App.config.load_all! }.not_to raise_error
|
12
|
+
end
|
11
13
|
|
12
|
-
|
13
|
-
expect
|
14
|
-
expect(App.config.db.username).to eq('admin')
|
14
|
+
it '.load! - valid file' do
|
15
|
+
expect { App.config.load!(:db) }.not_to raise_error
|
15
16
|
end
|
16
|
-
end
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
it '.load! - invalid file' do
|
19
|
+
expect { App.config.load!(:dbs) }.to raise_error /Configuration file.*doesn't exist on path/
|
20
|
+
end
|
21
21
|
end
|
22
22
|
|
23
|
-
|
24
|
-
|
23
|
+
context 'content' do
|
24
|
+
it 'all config files' do
|
25
|
+
App.config.load_all!
|
26
|
+
|
27
|
+
aggregate_failures do
|
28
|
+
expect(App.config.test.display_errors).to be true
|
29
|
+
expect(App.config.db.username).to eq('admin')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'single file' do
|
34
|
+
App.config.load!(:db)
|
35
|
+
expect(App.config.db.username).to eq('admin')
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'erb content' do
|
39
|
+
App.config.load!(:test)
|
40
|
+
expect(App.config.test.error_id).to eq('error_2')
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'erb content - boolean' do
|
44
|
+
App.config.load!(:test)
|
45
|
+
expect(App.config.test.boolean).to eq(true)
|
46
|
+
end
|
25
47
|
end
|
26
48
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wbconfigurator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Balos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: secure_yaml
|
@@ -27,7 +27,7 @@ dependencies:
|
|
27
27
|
description: Configuration tool for simple management with yaml files.
|
28
28
|
email:
|
29
29
|
- ibalosh@gmail.com
|
30
|
-
-
|
30
|
+
- ibalos@activecampaign.com
|
31
31
|
executables: []
|
32
32
|
extensions: []
|
33
33
|
extra_rdoc_files: []
|
@@ -45,7 +45,7 @@ files:
|
|
45
45
|
- spec/data/test.yaml
|
46
46
|
- spec/spec_helper.rb
|
47
47
|
- spec/unit/app_spec.rb
|
48
|
-
homepage: https://github.com/
|
48
|
+
homepage: https://github.com/ActiveCampaign/qa-configurator
|
49
49
|
licenses:
|
50
50
|
- MIT
|
51
51
|
metadata: {}
|
@@ -64,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
64
|
- !ruby/object:Gem::Version
|
65
65
|
version: 1.9.3
|
66
66
|
requirements: []
|
67
|
-
rubygems_version: 3.
|
67
|
+
rubygems_version: 3.2.3
|
68
68
|
signing_key:
|
69
69
|
specification_version: 4
|
70
70
|
summary: Config tool.
|