fillparams 0.0.5 → 0.0.6
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 +5 -5
- data/.travis.yml +12 -0
- data/FillParams.gemspec +1 -1
- data/LICENSE.txt +1 -1
- data/README.md +4 -2
- data/lib/FillParams/version.rb +1 -1
- data/lib/parameter_filler.rb +4 -12
- data/spec/parameter_filler_spec.rb +188 -45
- data/spec/spec_helper.rb +0 -1
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 626edd4bcbbc93f3aa0c6fcdbd419199b618e4b36f5f3414a8318fe7cf9f0089
|
4
|
+
data.tar.gz: bc92f306c837c684738a0da419a934e63648ad5291bbd504e7cf7bd75b57b7b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e577a6ceb9be2a13a544a117984a5d59a5622e9b184de116dd23b4a9b9e0f529d9b694fc17d547ed3a3f65f065f71bfd592f603ce4fd74f2d3118b657efffa5
|
7
|
+
data.tar.gz: 18fa85856d136aaa337a193e61858e4a4ae8e4ed0796872487f29db741df5f2e96d69b19949f0336acd2d4002a3f654e9458248172b515818f895472b50de9f5
|
data/.travis.yml
ADDED
data/FillParams.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency 'bundler', '~>
|
21
|
+
spec.add_development_dependency 'bundler', '~> 2.0'
|
22
22
|
spec.add_development_dependency 'rake'
|
23
23
|
spec.add_development_dependency 'rspec'
|
24
24
|
end
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
# FillParams
|
2
2
|
|
3
3
|
[](http://badge.fury.io/rb/fillparams)
|
4
|
-
|
5
|
-
|
4
|
+
|
5
|
+
# ⚠️ Deprecated
|
6
|
+
|
7
|
+
# Please use [ENVs](https://github.com/bkeepers/dotenv) or [encrypted credentials](https://edgeguides.rubyonrails.org/security.html#custom-credentials) instead
|
6
8
|
|
7
9
|
This tool allows you to manage ignored YAML parameters in your config files.
|
8
10
|
It is inspired by [Incenteev ParameterHandler](https://github.com/Incenteev/ParameterHandler).
|
data/lib/FillParams/version.rb
CHANGED
data/lib/parameter_filler.rb
CHANGED
@@ -14,9 +14,7 @@ class ParameterFiller
|
|
14
14
|
|
15
15
|
def fill_file_list
|
16
16
|
@config_files.each do |file_name|
|
17
|
-
if verbose
|
18
|
-
puts 'Filling ' + file_name + '...'
|
19
|
-
end
|
17
|
+
puts 'Filling ' + file_name + '...' if verbose
|
20
18
|
fill_file file_name
|
21
19
|
end
|
22
20
|
end
|
@@ -33,9 +31,7 @@ class ParameterFiller
|
|
33
31
|
def load_yaml_file(file_name)
|
34
32
|
begin
|
35
33
|
data = YAML.load_file(file_name)
|
36
|
-
unless data
|
37
|
-
data = {}
|
38
|
-
end
|
34
|
+
data = {} unless data
|
39
35
|
rescue Exception => e
|
40
36
|
raise ArgumentError, 'Invalid YAML in config file ' + file_name unless data
|
41
37
|
end
|
@@ -44,9 +40,7 @@ class ParameterFiller
|
|
44
40
|
|
45
41
|
def setup_files(file_name, dist_file_name)
|
46
42
|
raise ArgumentError, 'Dist file not found for ' + file_name unless File.file?(dist_file_name)
|
47
|
-
unless File.file?(file_name)
|
48
|
-
File.write(file_name, '')
|
49
|
-
end
|
43
|
+
File.write(file_name, '') unless File.file?(file_name)
|
50
44
|
return
|
51
45
|
end
|
52
46
|
|
@@ -57,9 +51,7 @@ class ParameterFiller
|
|
57
51
|
data[key] = ask_for_param(key, value)
|
58
52
|
end
|
59
53
|
if dist_data[key].is_a?(Hash)
|
60
|
-
unless data.has_key?(key)
|
61
|
-
data[key] = {}
|
62
|
-
end
|
54
|
+
data[key] = {} unless data.has_key?(key)
|
63
55
|
data[key] = fill_parameters(data[key], dist_data[key])
|
64
56
|
end
|
65
57
|
end
|
@@ -1,53 +1,196 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
describe ParameterFiller do
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
3
|
+
describe ParameterFiller do
|
4
|
+
describe '#fill_parameters' do
|
5
|
+
context 'simple input yml' do
|
6
|
+
def sample_dist_data
|
7
|
+
YAML.load(<<-EOF
|
8
|
+
NAME: value
|
9
|
+
string: abc
|
10
|
+
number: 1.23
|
11
|
+
EOF
|
12
|
+
)
|
13
|
+
end
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
15
|
+
let(:pf) { ParameterFiller.new('', false, false) }
|
16
|
+
context 'when the data is nil' do
|
17
|
+
let(:data){ nil }
|
18
|
+
it 'returns the same config as sample_dist_data' do
|
19
|
+
expect(pf.fill_parameters(data, sample_dist_data)).to eq sample_dist_data
|
20
|
+
end
|
21
|
+
end
|
22
|
+
context 'when the dist data is nil' do
|
23
|
+
let(:dist_data){ nil }
|
24
|
+
let(:data){ sample_dist_data }
|
25
|
+
it 'returns the same config as sample_dist_data' do
|
26
|
+
expect(pf.fill_parameters(data, sample_dist_data)).to eq sample_dist_data
|
27
|
+
end
|
28
|
+
end
|
29
|
+
context 'when the data is the same as sample data' do
|
30
|
+
let(:data){ sample_dist_data }
|
31
|
+
it 'returns the same config as sample_dist_data' do
|
32
|
+
expect(pf.fill_parameters(data, sample_dist_data)).to eq sample_dist_data
|
33
|
+
end
|
34
|
+
end
|
35
|
+
context 'when the data has additional key' do
|
36
|
+
let(:data){ sample_dist_data.merge('new_key'=> 'new_val') }
|
37
|
+
it 'returns the same config as data' do
|
38
|
+
expect(pf.fill_parameters(data, sample_dist_data)).to eq data
|
39
|
+
end
|
40
|
+
end
|
41
|
+
context 'when the dist data has additional key' do
|
42
|
+
let(:dist_data){ sample_dist_data.merge('new_key'=> 'new_val') }
|
43
|
+
let(:data){ sample_dist_data }
|
44
|
+
it 'returns the same config as dist_data' do
|
45
|
+
expect(pf.fill_parameters(data, dist_data)).to eq dist_data
|
46
|
+
end
|
47
|
+
end
|
48
|
+
context 'when both data and dist data have additional keys' do
|
49
|
+
let(:dist_data){ sample_dist_data.merge('new_key'=> 'new_val') }
|
50
|
+
let(:data){ sample_dist_data.merge('new_key2'=> 'new_val2') }
|
51
|
+
it 'returns data with this keys' do
|
52
|
+
expect(pf.fill_parameters(data, dist_data)).to eq dist_data.merge('new_key2'=> 'new_val2')
|
53
|
+
end
|
54
|
+
end
|
25
55
|
end
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
56
|
+
|
57
|
+
context 'nested input yml' do
|
58
|
+
def sample_dist_data
|
59
|
+
YAML.load(<<-EOF
|
60
|
+
key01: val01
|
61
|
+
key02:
|
62
|
+
key11: val11
|
63
|
+
key12:
|
64
|
+
key20: val20
|
65
|
+
EOF
|
66
|
+
)
|
67
|
+
end
|
68
|
+
let(:pf) { ParameterFiller.new('', false, false) }
|
69
|
+
context 'when the data is nil' do
|
70
|
+
let(:data){ nil }
|
71
|
+
it 'returns the same config as sample_dist_data' do
|
72
|
+
expect(pf.fill_parameters(data, sample_dist_data)).to eq sample_dist_data
|
73
|
+
end
|
74
|
+
end
|
75
|
+
context 'when the dist data is nil' do
|
76
|
+
let(:dist_data){ nil }
|
77
|
+
let(:data){ sample_dist_data }
|
78
|
+
it 'returns the same config as sample_dist_data' do
|
79
|
+
expect(pf.fill_parameters(data, sample_dist_data)).to eq sample_dist_data
|
80
|
+
end
|
81
|
+
end
|
82
|
+
context 'when the data is the same as sample data' do
|
83
|
+
let(:data){ sample_dist_data }
|
84
|
+
it 'returns the same config as sample_dist_data' do
|
85
|
+
expect(pf.fill_parameters(data, sample_dist_data)).to eq sample_dist_data
|
86
|
+
end
|
87
|
+
end
|
88
|
+
context 'when the data has additional key' do
|
89
|
+
context 'on zero level of nesting' do
|
90
|
+
let(:data){ sample_dist_data.merge('new_key'=> 'new_val') }
|
91
|
+
it 'returns the same config as data' do
|
92
|
+
expect(pf.fill_parameters(data, sample_dist_data)).to eq data
|
93
|
+
end
|
94
|
+
end
|
95
|
+
context 'on first level of nesting' do
|
96
|
+
let(:data){ sample_dist_data.merge('key02' => sample_dist_data['key02'].merge('new_key'=> 'new_val')) }
|
97
|
+
it 'returns the same config as data' do
|
98
|
+
expect(pf.fill_parameters(data, sample_dist_data)).to eq data
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
context 'when the dist data has additional key' do
|
103
|
+
context 'on zero level of nesting' do
|
104
|
+
let(:dist_data){ sample_dist_data.merge('new_key'=> 'new_val') }
|
105
|
+
let(:data){ sample_dist_data }
|
106
|
+
it 'returns the same config as dist_data' do
|
107
|
+
expect(pf.fill_parameters(data, dist_data)).to eq dist_data
|
108
|
+
end
|
109
|
+
end
|
110
|
+
context 'on first level of nesting' do
|
111
|
+
let(:dist_data){ sample_dist_data.merge('key02' => sample_dist_data['key02'].merge('new_key'=> 'new_val')) }
|
112
|
+
let(:data){ sample_dist_data }
|
113
|
+
it 'returns the same config as dist_data' do
|
114
|
+
expect(pf.fill_parameters(data, dist_data)).to eq dist_data
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
context 'when both data and dist data have additional keys' do
|
119
|
+
context 'dist data on zero level of nesting and data on first level of nesting' do
|
120
|
+
let(:dist_data){ sample_dist_data.merge('new_key'=> 'new_val') }
|
121
|
+
let(:data){ sample_dist_data.merge('key02' => sample_dist_data['key02'].merge('new_key2'=> 'new_val2')) }
|
122
|
+
it 'returns data with this keys' do
|
123
|
+
expect(pf.fill_parameters(data, dist_data)).to eq data.merge('new_key'=> 'new_val')
|
124
|
+
end
|
125
|
+
end
|
126
|
+
context 'dist data on first level of nesting and data on zero level of nesting' do
|
127
|
+
let(:dist_data){ sample_dist_data.merge('key02' => sample_dist_data['key02'].merge('new_key'=> 'new_val')) }
|
128
|
+
let(:data){ sample_dist_data.merge('new_key2'=> 'new_val2') }
|
129
|
+
it 'returns data with this keys' do
|
130
|
+
expect(pf.fill_parameters(data, dist_data)).to eq dist_data.merge('new_key2'=> 'new_val2')
|
131
|
+
end
|
132
|
+
end
|
133
|
+
context 'when both data and dist data on first level of nesting' do
|
134
|
+
let(:dist_data){ sample_dist_data.merge('key02' => sample_dist_data['key02'].merge('new_key'=> 'new_val')) }
|
135
|
+
let(:data){ sample_dist_data.merge('key02' => sample_dist_data['key02'].merge('new_key2'=> 'new_val2')) }
|
136
|
+
it 'returns data with this keys' do
|
137
|
+
expect(pf.fill_parameters(data, dist_data)).to eq dist_data.merge('key02' => dist_data['key02'].merge('new_key2'=> 'new_val2'))
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
44
141
|
end
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
142
|
+
|
143
|
+
context 'yml with anchors and aliases' do
|
144
|
+
def sample_dist_data
|
145
|
+
YAML.load(<<-EOF
|
146
|
+
defaults: &defaults
|
147
|
+
adapter: postgres
|
148
|
+
host: localhost
|
149
|
+
|
150
|
+
development:
|
151
|
+
database: myapp_development
|
152
|
+
<<: *defaults
|
153
|
+
|
154
|
+
test:
|
155
|
+
database: myapp_test
|
156
|
+
<<: *defaults
|
157
|
+
EOF
|
158
|
+
)
|
159
|
+
end
|
160
|
+
|
161
|
+
def data_results
|
162
|
+
YAML.load(<<-EOF
|
163
|
+
defaults:
|
164
|
+
adapter: postgres
|
165
|
+
host: localhost
|
166
|
+
|
167
|
+
development:
|
168
|
+
database: myapp_development
|
169
|
+
adapter: postgres
|
170
|
+
host: localhost
|
171
|
+
|
172
|
+
test:
|
173
|
+
database: myapp_test
|
174
|
+
adapter: postgres
|
175
|
+
host: localhost
|
176
|
+
EOF
|
177
|
+
)
|
178
|
+
end
|
179
|
+
|
180
|
+
let(:pf) { ParameterFiller.new('', false, false) }
|
181
|
+
context 'when the data is nil' do
|
182
|
+
let(:data){ nil }
|
183
|
+
it 'returns data_results' do
|
184
|
+
expect(pf.fill_parameters(data, sample_dist_data)).to eq data_results
|
185
|
+
end
|
186
|
+
end
|
187
|
+
context 'when the dist data is nil' do
|
188
|
+
let(:dist_data){ nil }
|
189
|
+
let(:data){ sample_dist_data }
|
190
|
+
it 'returns data_results' do
|
191
|
+
expect(pf.fill_parameters(data, sample_dist_data)).to eq data_results
|
192
|
+
end
|
193
|
+
end
|
51
194
|
end
|
52
195
|
end
|
53
196
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,56 +1,56 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fillparams
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Krzysztof Hasiński
|
8
8
|
- Justyna Wojtczak
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-11-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - ~>
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '2.0'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - ~>
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '2.0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rspec
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
description: A gem for filling in parameters automatically
|
@@ -62,8 +62,9 @@ executables:
|
|
62
62
|
extensions: []
|
63
63
|
extra_rdoc_files: []
|
64
64
|
files:
|
65
|
-
- .gitignore
|
66
|
-
- .rspec
|
65
|
+
- ".gitignore"
|
66
|
+
- ".rspec"
|
67
|
+
- ".travis.yml"
|
67
68
|
- FillParams.gemspec
|
68
69
|
- Gemfile
|
69
70
|
- LICENSE.txt
|
@@ -82,24 +83,23 @@ homepage: http://github.com/khasinski/fillparams
|
|
82
83
|
licenses:
|
83
84
|
- MIT
|
84
85
|
metadata: {}
|
85
|
-
post_install_message:
|
86
|
+
post_install_message:
|
86
87
|
rdoc_options: []
|
87
88
|
require_paths:
|
88
89
|
- lib
|
89
90
|
required_ruby_version: !ruby/object:Gem::Requirement
|
90
91
|
requirements:
|
91
|
-
- -
|
92
|
+
- - ">="
|
92
93
|
- !ruby/object:Gem::Version
|
93
94
|
version: '0'
|
94
95
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
96
|
requirements:
|
96
|
-
- -
|
97
|
+
- - ">="
|
97
98
|
- !ruby/object:Gem::Version
|
98
99
|
version: '0'
|
99
100
|
requirements: []
|
100
|
-
|
101
|
-
|
102
|
-
signing_key:
|
101
|
+
rubygems_version: 3.2.22
|
102
|
+
signing_key:
|
103
103
|
specification_version: 4
|
104
104
|
summary: Parameters handler, for usage see github page
|
105
105
|
test_files:
|