config_curator 0.2.0 → 0.2.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 +4 -4
- data/.editorconfig +9 -0
- data/.travis.yml +4 -5
- data/CHANGELOG.md +4 -0
- data/README.md +6 -6
- data/config_curator.gemspec +16 -16
- data/lib/.rubocop.yml +4 -1
- data/lib/config_curator/cli.rb +4 -4
- data/lib/config_curator/collection.rb +4 -2
- data/lib/config_curator/package_lookup.rb +3 -3
- data/lib/config_curator/units/config_file.rb +2 -3
- data/lib/config_curator/version.rb +1 -1
- data/spec/.rubocop.yml +1 -1
- data/spec/cli_spec.rb +0 -7
- data/spec/collection_spec.rb +4 -20
- data/spec/package_lookup_spec.rb +0 -11
- data/spec/unit_spec.rb +0 -21
- data/spec/units/component_spec.rb +0 -8
- data/spec/units/config_file_spec.rb +3 -15
- data/spec/units/symlink_spec.rb +0 -7
- metadata +38 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9753c5a06c3b4ee8154f677ee19e096c31503646
|
4
|
+
data.tar.gz: b7b258c1b60446f82a5c8db2731d85ca0573329f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 129f1da431c6d4afab659dbca31bf5b11523b6e21033d3508b0e3b3c51d7f2528f39d65f4282ac6c3399c7d6037919f9b6988c4078dd08eebf9188724a01f14a
|
7
|
+
data.tar.gz: efba699dc4727c0bb018ea4cd8afa20d17eb0007a9ae04e5b53a3dbb386943077d1bd6feff16640044b625428296b9a33ae354e3edf7d6b0389d2e5406ef5478
|
data/.editorconfig
ADDED
data/.travis.yml
CHANGED
@@ -2,13 +2,12 @@ language: ruby
|
|
2
2
|
cache: bundler
|
3
3
|
rvm:
|
4
4
|
- 2.0.0
|
5
|
-
- 2.1.
|
6
|
-
- 2.
|
5
|
+
- 2.1.5
|
6
|
+
- 2.2.0
|
7
|
+
cache: bundler
|
8
|
+
sudo: false
|
7
9
|
|
8
10
|
before_install:
|
9
11
|
- 'echo ''gem: --no-document'' > ~/.gemrc'
|
10
12
|
|
11
|
-
install:
|
12
|
-
- bundle update
|
13
|
-
|
14
13
|
script: bundle exec rake travis
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# Config Curator
|
2
2
|
|
3
|
-
[](https://rubygems.org/gems/config_curator)
|
4
|
+
[](./LICENSE.txt)
|
5
|
+
[](https://gemnasium.com/razor-x/config_curator)
|
6
|
+
[](https://travis-ci.org/razor-x/config_curator)
|
7
|
+
[](https://coveralls.io/r/razor-x/config_curator)
|
8
|
+
[](https://codeclimate.com/github/razor-x/config_curator)
|
9
9
|
|
10
10
|
by Evan Boyd Sosenko.
|
11
11
|
|
data/config_curator.gemspec
CHANGED
@@ -19,28 +19,28 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.required_ruby_version = '>= 2.0.0'
|
21
21
|
|
22
|
-
spec.add_dependency 'activesupport', '~> 4.
|
23
|
-
spec.add_dependency 'thor', '~> 0.19
|
22
|
+
spec.add_dependency 'activesupport', '~> 4.2'
|
23
|
+
spec.add_dependency 'thor', '~> 0.19'
|
24
24
|
|
25
25
|
spec.add_development_dependency 'bundler', '~> 1.6'
|
26
|
-
spec.add_development_dependency 'bump', '~> 0.5
|
26
|
+
spec.add_development_dependency 'bump', '~> 0.5'
|
27
27
|
|
28
|
-
spec.add_development_dependency 'yard', '~> 0.8.7
|
28
|
+
spec.add_development_dependency 'yard', '~> 0.8.7'
|
29
29
|
spec.add_development_dependency 'yard-redcarpet-ext', '~> 0.0.3'
|
30
|
-
spec.add_development_dependency 'redcarpet', '~> 3.
|
31
|
-
spec.add_development_dependency 'github-markup', '1.
|
30
|
+
spec.add_development_dependency 'redcarpet', '~> 3.2'
|
31
|
+
spec.add_development_dependency 'github-markup', '~> 1.3'
|
32
32
|
|
33
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
33
|
+
spec.add_development_dependency 'rubocop', '~> 0.28'
|
34
34
|
|
35
|
-
spec.add_development_dependency 'rake', '~> 10.
|
35
|
+
spec.add_development_dependency 'rake', '~> 10.4'
|
36
36
|
|
37
|
-
spec.add_development_dependency 'guard', '~> 2.
|
38
|
-
spec.add_development_dependency 'guard-yard', '~> 2.1
|
39
|
-
spec.add_development_dependency 'guard-rubocop', '~> 1.
|
40
|
-
spec.add_development_dependency 'guard-rspec', '~> 4.
|
37
|
+
spec.add_development_dependency 'guard', '~> 2.11'
|
38
|
+
spec.add_development_dependency 'guard-yard', '~> 2.1'
|
39
|
+
spec.add_development_dependency 'guard-rubocop', '~> 1.2'
|
40
|
+
spec.add_development_dependency 'guard-rspec', '~> 4.5'
|
41
41
|
|
42
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
43
|
-
spec.add_development_dependency 'simplecov', '~> 0.
|
44
|
-
spec.add_development_dependency 'coveralls', '~> 0.7
|
45
|
-
spec.add_development_dependency 'fuubar', '~> 2.0
|
42
|
+
spec.add_development_dependency 'rspec', '~> 3.1'
|
43
|
+
spec.add_development_dependency 'simplecov', '~> 0.9'
|
44
|
+
spec.add_development_dependency 'coveralls', '~> 0.7'
|
45
|
+
spec.add_development_dependency 'fuubar', '~> 2.0'
|
46
46
|
end
|
data/lib/.rubocop.yml
CHANGED
data/lib/config_curator/cli.rb
CHANGED
@@ -10,13 +10,13 @@ module ConfigCurator
|
|
10
10
|
class_option :quiet, type: :boolean, aliases: %i(q)
|
11
11
|
class_option :debug, type: :boolean
|
12
12
|
|
13
|
-
# Installs the collection.
|
14
|
-
# @param manifest [String] path to the manifest file to use
|
15
|
-
# @return [Boolean] value of {Collection#install} or {Collection#install?}
|
16
13
|
desc 'install', 'Installs all units in collection.'
|
17
14
|
option :dryrun,
|
18
15
|
type: :boolean, aliases: %i(n),
|
19
|
-
desc:
|
16
|
+
desc: "Only simulate the install. Don't make any actual changes."
|
17
|
+
# Installs the collection.
|
18
|
+
# @param manifest [String] path to the manifest file to use
|
19
|
+
# @return [Boolean] value of {Collection#install} or {Collection#install?}
|
20
20
|
def install(manifest = 'manifest.yml')
|
21
21
|
unless File.exist? manifest
|
22
22
|
logger.fatal { "Manifest file '#{manifest}' does not exist." }
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'active_support/core_ext/hash'
|
1
2
|
require 'active_support/core_ext/string'
|
2
3
|
require 'logger'
|
3
4
|
require 'yaml'
|
@@ -39,7 +40,8 @@ module ConfigCurator
|
|
39
40
|
# @param file [Hash] the yaml file to load
|
40
41
|
# @return [Hash] the loaded manifest
|
41
42
|
def load_manifest(file)
|
42
|
-
self.manifest =
|
43
|
+
self.manifest =
|
44
|
+
ActiveSupport::HashWithIndifferentAccess.new YAML.load_file(file)
|
43
45
|
end
|
44
46
|
|
45
47
|
# Unit objects defined by the manifest and organized by type.
|
@@ -90,7 +92,7 @@ module ConfigCurator
|
|
90
92
|
# @return [Unit] the unit object of the appropriate subclass
|
91
93
|
def create_unit(type, attributes: {})
|
92
94
|
"#{self.class.name.split('::').first}::#{type.to_s.camelize}".constantize
|
93
|
-
|
95
|
+
.new(options: unit_options, logger: logger).tap do |unit|
|
94
96
|
{src: :source, dst: :destination}.each do |k, v|
|
95
97
|
unit.send "#{v}=".to_sym, attributes[k] unless attributes[k].nil?
|
96
98
|
end
|
@@ -68,21 +68,21 @@ module ConfigCurator
|
|
68
68
|
|
69
69
|
def dpkg(package)
|
70
70
|
cmd = command? 'dpkg'
|
71
|
-
Open3.popen3 cmd, '-s', package do |_, _
|
71
|
+
Open3.popen3 cmd, '-s', package do |_, _, _, wait_thr|
|
72
72
|
wait_thr.value.to_i == 0
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
76
|
def pacman(package)
|
77
77
|
cmd = command? 'pacman'
|
78
|
-
Open3.popen3 cmd, '-qQ', package do |_, _
|
78
|
+
Open3.popen3 cmd, '-qQ', package do |_, _, _, wait_thr|
|
79
79
|
wait_thr.value.to_i == 0
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
83
|
def pkgng(package)
|
84
84
|
cmd = command? 'pkg'
|
85
|
-
Open3.popen3 cmd, 'info', package do |_, _
|
85
|
+
Open3.popen3 cmd, 'info', package do |_, _, _, wait_thr|
|
86
86
|
wait_thr.value.to_i == 0
|
87
87
|
end
|
88
88
|
end
|
@@ -70,10 +70,9 @@ module ConfigCurator
|
|
70
70
|
basename = File.basename path.chomp(extension)
|
71
71
|
if Dir.exist? directory
|
72
72
|
file = Dir.entries(directory).grep(/^#{basename}.#{hostname.downcase}/).first
|
73
|
-
File.join directory, file unless file.nil?
|
74
|
-
else
|
75
|
-
nil
|
73
|
+
return File.join directory, file unless file.nil?
|
76
74
|
end
|
75
|
+
nil
|
77
76
|
end
|
78
77
|
end
|
79
78
|
end
|
data/spec/.rubocop.yml
CHANGED
data/spec/cli_spec.rb
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe ConfigCurator::CLI do
|
4
|
-
|
5
4
|
subject(:cli) { ConfigCurator::CLI.new }
|
6
5
|
|
7
6
|
describe "#collection" do
|
8
|
-
|
9
7
|
it "makes a new collection" do
|
10
8
|
expect(cli.collection).to be_a ConfigCurator::Collection
|
11
9
|
end
|
@@ -16,14 +14,12 @@ describe ConfigCurator::CLI do
|
|
16
14
|
end
|
17
15
|
|
18
16
|
describe "#logger" do
|
19
|
-
|
20
17
|
it "makes a new logger" do
|
21
18
|
expect(cli.logger).to be_a Logger
|
22
19
|
end
|
23
20
|
end
|
24
21
|
|
25
22
|
describe "#install" do
|
26
|
-
|
27
23
|
it "installs the collection" do
|
28
24
|
allow(File).to receive(:exist?).with('manifest.yml').and_return(true)
|
29
25
|
expect(cli.collection).to receive(:load_manifest).with('manifest.yml')
|
@@ -32,7 +28,6 @@ describe ConfigCurator::CLI do
|
|
32
28
|
end
|
33
29
|
|
34
30
|
context "when --dryrun is set" do
|
35
|
-
|
36
31
|
before(:each) { allow(cli).to receive(:options).and_return(dryrun: true) }
|
37
32
|
|
38
33
|
it "only checks if install would succeed" do
|
@@ -45,7 +40,6 @@ describe ConfigCurator::CLI do
|
|
45
40
|
end
|
46
41
|
|
47
42
|
context "manifest not found" do
|
48
|
-
|
49
43
|
it "returns false and doesn't do anything else" do
|
50
44
|
allow(File).to receive(:exist?).with('manifest.yml').and_return(false)
|
51
45
|
expect(cli.collection).to_not receive(:install)
|
@@ -54,7 +48,6 @@ describe ConfigCurator::CLI do
|
|
54
48
|
end
|
55
49
|
|
56
50
|
context "when --dryrun is set" do
|
57
|
-
|
58
51
|
before(:each) { allow(cli).to receive(:options).and_return(dryrun: true) }
|
59
52
|
|
60
53
|
it "returns false and doesn't do anything else" do
|
data/spec/collection_spec.rb
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe ConfigCurator::Collection do
|
4
|
-
|
5
4
|
subject(:collection) { ConfigCurator::Collection.new }
|
6
5
|
|
7
6
|
describe ".new" do
|
8
|
-
|
9
7
|
it "sets the logger" do
|
10
8
|
logger = Logger.new(STDOUT)
|
11
9
|
collection = ConfigCurator::Collection.new logger: logger
|
@@ -19,15 +17,15 @@ describe ConfigCurator::Collection do
|
|
19
17
|
end
|
20
18
|
|
21
19
|
describe "#logger" do
|
22
|
-
|
23
20
|
it "makes a new logger" do
|
24
21
|
expect(collection.logger).to be_a Logger
|
25
22
|
end
|
26
23
|
end
|
27
24
|
|
28
25
|
describe "#load_manifest" do
|
29
|
-
|
30
|
-
|
26
|
+
let(:manifest) do
|
27
|
+
ActiveSupport::HashWithIndifferentAccess.new(root: 'tmp')
|
28
|
+
end
|
31
29
|
|
32
30
|
it "loads the manifest" do
|
33
31
|
path = 'path/to/manifest'
|
@@ -38,7 +36,6 @@ describe ConfigCurator::Collection do
|
|
38
36
|
end
|
39
37
|
|
40
38
|
describe "#create_unit" do
|
41
|
-
|
42
39
|
subject(:unit) { collection.create_unit :unit }
|
43
40
|
|
44
41
|
it "makes a new unit" do
|
@@ -50,7 +47,6 @@ describe ConfigCurator::Collection do
|
|
50
47
|
end
|
51
48
|
|
52
49
|
context "with basic attributes" do
|
53
|
-
|
54
50
|
let(:attributes) { {src: 'src', dst: 'dest'} }
|
55
51
|
subject(:unit) { collection.create_unit :unit, attributes: attributes }
|
56
52
|
|
@@ -64,7 +60,6 @@ describe ConfigCurator::Collection do
|
|
64
60
|
end
|
65
61
|
|
66
62
|
context "with unit specific attributes" do
|
67
|
-
|
68
63
|
let(:attributes) { {src: 'src', dst: 'dest', fmode: '0600', owner: 'username'} }
|
69
64
|
subject(:unit) { collection.create_unit :component, attributes: attributes }
|
70
65
|
|
@@ -80,7 +75,6 @@ describe ConfigCurator::Collection do
|
|
80
75
|
end
|
81
76
|
|
82
77
|
context "with manifest" do
|
83
|
-
|
84
78
|
let(:manifest) do
|
85
79
|
YAML.load <<-EOF
|
86
80
|
:root: /tmp
|
@@ -117,14 +111,12 @@ describe ConfigCurator::Collection do
|
|
117
111
|
end
|
118
112
|
|
119
113
|
describe "#units" do
|
120
|
-
|
121
114
|
let(:types) do
|
122
115
|
types = ConfigCurator::Collection::UNIT_TYPES
|
123
116
|
types.map { |t| "#{t}s".to_sym }
|
124
117
|
end
|
125
118
|
|
126
119
|
context "no manifest" do
|
127
|
-
|
128
120
|
it "has a key for each supported unit type" do
|
129
121
|
types.each do |type|
|
130
122
|
expect(collection.units.key? type).to be true
|
@@ -140,7 +132,6 @@ describe ConfigCurator::Collection do
|
|
140
132
|
end
|
141
133
|
|
142
134
|
context "with manifest" do
|
143
|
-
|
144
135
|
let(:manifest) do
|
145
136
|
YAML.load <<-EOF
|
146
137
|
:defaults:
|
@@ -192,7 +183,6 @@ describe ConfigCurator::Collection do
|
|
192
183
|
end
|
193
184
|
|
194
185
|
describe "#install" do
|
195
|
-
|
196
186
|
let(:manifest) do
|
197
187
|
YAML.load <<-EOF
|
198
188
|
:components:
|
@@ -210,7 +200,6 @@ describe ConfigCurator::Collection do
|
|
210
200
|
let(:units) { collection.units }
|
211
201
|
|
212
202
|
context "when #install? is true" do
|
213
|
-
|
214
203
|
it "calls #install on each unit and returns true" do
|
215
204
|
allow(collection).to receive(:install?).and_return(true)
|
216
205
|
expect(units[:components][0]).to receive(:install)
|
@@ -221,7 +210,6 @@ describe ConfigCurator::Collection do
|
|
221
210
|
end
|
222
211
|
|
223
212
|
context "when #install? is false" do
|
224
|
-
|
225
213
|
it "does not call #install on each unit and returns false" do
|
226
214
|
allow(collection).to receive(:install?).and_return(false)
|
227
215
|
expect(units[:components][0]).to_not receive(:install)
|
@@ -232,7 +220,6 @@ describe ConfigCurator::Collection do
|
|
232
220
|
end
|
233
221
|
|
234
222
|
context "when component install fails" do
|
235
|
-
|
236
223
|
it "stops installing and returns nil" do
|
237
224
|
allow(collection).to receive(:install?).and_return(true)
|
238
225
|
expect(units[:components][0]).to receive(:install)
|
@@ -244,7 +231,6 @@ describe ConfigCurator::Collection do
|
|
244
231
|
end
|
245
232
|
|
246
233
|
describe "#install?" do
|
247
|
-
|
248
234
|
let(:manifest) do
|
249
235
|
YAML.load <<-EOF
|
250
236
|
:components:
|
@@ -262,7 +248,6 @@ describe ConfigCurator::Collection do
|
|
262
248
|
let(:units) { collection.units }
|
263
249
|
|
264
250
|
context "when no errors" do
|
265
|
-
|
266
251
|
it "calls #install? on each unit and returns true" do
|
267
252
|
expect(units[:components][0]).to receive(:install?)
|
268
253
|
expect(units[:components][1]).to receive(:install?)
|
@@ -272,10 +257,9 @@ describe ConfigCurator::Collection do
|
|
272
257
|
end
|
273
258
|
|
274
259
|
context "when install error" do
|
275
|
-
|
276
260
|
it "calls #install? on each unit and returns false" do
|
277
261
|
allow(units[:components][0]).to receive(:install?)
|
278
|
-
|
262
|
+
.and_raise(ConfigCurator::Unit::InstallFailed)
|
279
263
|
allow(units[:components][1]).to receive(:install?)
|
280
264
|
allow(units[:config_files][0]).to receive(:install?)
|
281
265
|
expect(collection.install?).to be false
|
data/spec/package_lookup_spec.rb
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe ConfigCurator::PackageLookup do
|
4
|
-
|
5
4
|
subject(:lookup) { ConfigCurator::PackageLookup.new }
|
6
5
|
|
7
6
|
describe ".new" do
|
8
|
-
|
9
7
|
it "sets the package tool" do
|
10
8
|
lookup = ConfigCurator::PackageLookup.new tool: :dpkg
|
11
9
|
expect(lookup.tool).to eq :dpkg
|
@@ -13,16 +11,13 @@ describe ConfigCurator::PackageLookup do
|
|
13
11
|
end
|
14
12
|
|
15
13
|
describe "#tools" do
|
16
|
-
|
17
14
|
it "uses the default list of tools" do
|
18
15
|
expect(lookup.tools).to eq ConfigCurator::PackageLookup::TOOLS
|
19
16
|
end
|
20
17
|
end
|
21
18
|
|
22
19
|
describe "#tool" do
|
23
|
-
|
24
20
|
context "when tool is set" do
|
25
|
-
|
26
21
|
it "returns the tool" do
|
27
22
|
lookup.tool = :pacman
|
28
23
|
expect(lookup.tool).to eq :pacman
|
@@ -30,7 +25,6 @@ describe ConfigCurator::PackageLookup do
|
|
30
25
|
end
|
31
26
|
|
32
27
|
context "when tool not set" do
|
33
|
-
|
34
28
|
it "returns the first avaible tool" do
|
35
29
|
lookup.tools = {dpkg: 'dpkg', pacman: 'pacman'}
|
36
30
|
allow(lookup).to receive(:command?).with('dpkg').and_return(true)
|
@@ -40,9 +34,7 @@ describe ConfigCurator::PackageLookup do
|
|
40
34
|
end
|
41
35
|
|
42
36
|
describe "#installed?" do
|
43
|
-
|
44
37
|
context "when package is found" do
|
45
|
-
|
46
38
|
it "calls the corresponding private lookup method and returns true" do
|
47
39
|
lookup.tool = :dpkg
|
48
40
|
cmd = lookup.tools[:dpkg]
|
@@ -53,7 +45,6 @@ describe ConfigCurator::PackageLookup do
|
|
53
45
|
end
|
54
46
|
|
55
47
|
context "when package not found" do
|
56
|
-
|
57
48
|
it "calls the corresponding private lookup method and returns false" do
|
58
49
|
lookup.tool = :dpkg
|
59
50
|
cmd = lookup.tools[:dpkg]
|
@@ -64,7 +55,6 @@ describe ConfigCurator::PackageLookup do
|
|
64
55
|
end
|
65
56
|
|
66
57
|
context "when no package tool found" do
|
67
|
-
|
68
58
|
it "fails" do
|
69
59
|
lookup.tools = {dpkg: 'dpkg'}
|
70
60
|
allow(lookup).to receive(:command?).with('dpkg').and_return(nil)
|
@@ -73,7 +63,6 @@ describe ConfigCurator::PackageLookup do
|
|
73
63
|
end
|
74
64
|
|
75
65
|
context "when package tool not found" do
|
76
|
-
|
77
66
|
it "fails" do
|
78
67
|
lookup.tool = :dpkg
|
79
68
|
cmd = lookup.tools[:dpkg]
|
data/spec/unit_spec.rb
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe ConfigCurator::Unit do
|
4
|
-
|
5
4
|
subject(:unit) { ConfigCurator::Unit.new }
|
6
5
|
|
7
6
|
describe ".new" do
|
8
|
-
|
9
7
|
it "sets the logger" do
|
10
8
|
logger = Logger.new(STDOUT)
|
11
9
|
unit = ConfigCurator::Unit.new logger: logger
|
@@ -23,14 +21,12 @@ describe ConfigCurator::Unit do
|
|
23
21
|
end
|
24
22
|
|
25
23
|
describe "#logger" do
|
26
|
-
|
27
24
|
it "makes a new logger" do
|
28
25
|
expect(unit.logger).to be_a Logger
|
29
26
|
end
|
30
27
|
end
|
31
28
|
|
32
29
|
describe "#options" do
|
33
|
-
|
34
30
|
it "merges with default options" do
|
35
31
|
unit.options[:root] = '/home/user'
|
36
32
|
expect(unit.options).to eq ConfigCurator::Unit::DEFAULT_OPTIONS.merge(root: '/home/user')
|
@@ -44,14 +40,12 @@ describe ConfigCurator::Unit do
|
|
44
40
|
end
|
45
41
|
|
46
42
|
describe "#source_path" do
|
47
|
-
|
48
43
|
it "expands the path" do
|
49
44
|
unit.source = 'path/../src_name'
|
50
45
|
expect(unit.source_path).to eq File.expand_path('path/../src_name')
|
51
46
|
end
|
52
47
|
|
53
48
|
context "when no source given" do
|
54
|
-
|
55
49
|
it "returns nil" do
|
56
50
|
expect(unit.source_path).to eq nil
|
57
51
|
end
|
@@ -59,7 +53,6 @@ describe ConfigCurator::Unit do
|
|
59
53
|
end
|
60
54
|
|
61
55
|
describe "#destination_path" do
|
62
|
-
|
63
56
|
it "expands the path" do
|
64
57
|
unit.destination = 'path/../dest_name'
|
65
58
|
unit.options[:root] = '/tmp'
|
@@ -67,7 +60,6 @@ describe ConfigCurator::Unit do
|
|
67
60
|
end
|
68
61
|
|
69
62
|
context "when no destination given" do
|
70
|
-
|
71
63
|
it "returns nil" do
|
72
64
|
expect(unit.destination_path).to eq nil
|
73
65
|
end
|
@@ -75,7 +67,6 @@ describe ConfigCurator::Unit do
|
|
75
67
|
end
|
76
68
|
|
77
69
|
describe "#hosts" do
|
78
|
-
|
79
70
|
it "is empty by default" do
|
80
71
|
expect(unit.hosts).to be_a Array
|
81
72
|
expect(unit.hosts).to be_empty
|
@@ -83,7 +74,6 @@ describe ConfigCurator::Unit do
|
|
83
74
|
end
|
84
75
|
|
85
76
|
describe "#packages" do
|
86
|
-
|
87
77
|
it "is empty by default" do
|
88
78
|
expect(unit.packages).to be_a Array
|
89
79
|
expect(unit.packages).to be_empty
|
@@ -91,7 +81,6 @@ describe ConfigCurator::Unit do
|
|
91
81
|
end
|
92
82
|
|
93
83
|
describe "#package_lookup" do
|
94
|
-
|
95
84
|
it "returns a PackageLookup object" do
|
96
85
|
expect(unit.package_lookup).to be_a ConfigCurator::PackageLookup
|
97
86
|
end
|
@@ -103,9 +92,7 @@ describe ConfigCurator::Unit do
|
|
103
92
|
end
|
104
93
|
|
105
94
|
describe "#install" do
|
106
|
-
|
107
95
|
context "when unit should be installed" do
|
108
|
-
|
109
96
|
it "returns true" do
|
110
97
|
expect(unit).to receive(:install?).and_return(true)
|
111
98
|
expect(unit.install).to be true
|
@@ -113,7 +100,6 @@ describe ConfigCurator::Unit do
|
|
113
100
|
end
|
114
101
|
|
115
102
|
context "when unit should not be installed" do
|
116
|
-
|
117
103
|
it "returns false" do
|
118
104
|
expect(unit).to receive(:install?).and_return(false)
|
119
105
|
expect(unit.install).to be false
|
@@ -122,7 +108,6 @@ describe ConfigCurator::Unit do
|
|
122
108
|
end
|
123
109
|
|
124
110
|
describe "#install?" do
|
125
|
-
|
126
111
|
it "checks if host is allowed" do
|
127
112
|
expect(unit).to receive(:allowed_host?)
|
128
113
|
unit.install?
|
@@ -135,9 +120,7 @@ describe ConfigCurator::Unit do
|
|
135
120
|
end
|
136
121
|
|
137
122
|
describe "#allowed_host?" do
|
138
|
-
|
139
123
|
context "when hosts are given" do
|
140
|
-
|
141
124
|
it "allows host if host is listed" do
|
142
125
|
allow(unit).to receive(:hostname).and_return('test_hostname')
|
143
126
|
unit.hosts = %w(some_host test_hostname)
|
@@ -152,7 +135,6 @@ describe ConfigCurator::Unit do
|
|
152
135
|
end
|
153
136
|
|
154
137
|
context "when no hosts are given" do
|
155
|
-
|
156
138
|
it "allows any host" do
|
157
139
|
unit.hosts = []
|
158
140
|
expect(unit.allowed_host?).to eq true
|
@@ -161,9 +143,7 @@ describe ConfigCurator::Unit do
|
|
161
143
|
end
|
162
144
|
|
163
145
|
describe "#packages_installed?" do
|
164
|
-
|
165
146
|
context "when packages listed" do
|
166
|
-
|
167
147
|
it "meets package requirements if no missing packages" do
|
168
148
|
allow(unit).to receive(:pkg_exists?).with('good_pkg_1').and_return(true)
|
169
149
|
allow(unit).to receive(:pkg_exists?).with('good_pkg_2').and_return(true)
|
@@ -180,7 +160,6 @@ describe ConfigCurator::Unit do
|
|
180
160
|
end
|
181
161
|
|
182
162
|
context "when no packages listed" do
|
183
|
-
|
184
163
|
it "meets package requirements" do
|
185
164
|
unit.packages = []
|
186
165
|
expect(unit.packages_installed?).to eq true
|
@@ -1,13 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe ConfigCurator::Component do
|
4
|
-
|
5
4
|
subject(:component) { ConfigCurator::Component.new }
|
6
5
|
|
7
6
|
describe "#install" do
|
8
|
-
|
9
7
|
context "when component should be installed" do
|
10
|
-
|
11
8
|
it "installs the component and returns true" do
|
12
9
|
expect(component).to receive(:install?).and_return(true)
|
13
10
|
expect(component).to receive(:install_component)
|
@@ -18,7 +15,6 @@ describe ConfigCurator::Component do
|
|
18
15
|
end
|
19
16
|
|
20
17
|
context "when component should not be installed" do
|
21
|
-
|
22
18
|
it "does not install the component and returns false" do
|
23
19
|
expect(component).to receive(:install?).and_return(false)
|
24
20
|
expect(component).to_not receive(:install_component)
|
@@ -30,9 +26,7 @@ describe ConfigCurator::Component do
|
|
30
26
|
end
|
31
27
|
|
32
28
|
describe "#install?" do
|
33
|
-
|
34
29
|
context "when source not given" do
|
35
|
-
|
36
30
|
it "fails" do
|
37
31
|
component.destination = 'inst_path'
|
38
32
|
expect { component.install? }.to raise_error ConfigCurator::Symlink::InstallFailed
|
@@ -40,7 +34,6 @@ describe ConfigCurator::Component do
|
|
40
34
|
end
|
41
35
|
|
42
36
|
context "when destination not given" do
|
43
|
-
|
44
37
|
it "fails" do
|
45
38
|
component.source = 'dir'
|
46
39
|
expect { component.install? }.to raise_error ConfigCurator::Symlink::InstallFailed
|
@@ -48,7 +41,6 @@ describe ConfigCurator::Component do
|
|
48
41
|
end
|
49
42
|
|
50
43
|
context "when source does not exist" do
|
51
|
-
|
52
44
|
it "fails" do
|
53
45
|
component.destination = 'inst_path'
|
54
46
|
component.source = 'dir/that/does/not/exist'
|
@@ -1,11 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe ConfigCurator::ConfigFile do
|
4
|
-
|
5
4
|
subject(:config_file) { ConfigCurator::ConfigFile.new }
|
6
5
|
|
7
6
|
describe "#destination" do
|
8
|
-
|
9
7
|
let(:source) { 'path/../src_name.ext' }
|
10
8
|
|
11
9
|
it "uses the source path to set the destination" do
|
@@ -14,47 +12,41 @@ describe ConfigCurator::ConfigFile do
|
|
14
12
|
end
|
15
13
|
|
16
14
|
context "when host-specific file found" do
|
17
|
-
|
18
15
|
it "uses the source path to set the destination" do
|
19
16
|
config_file.source = source
|
20
17
|
allow(config_file).to receive(:search_for_host_specific_file).with(source)
|
21
|
-
|
18
|
+
.and_return('path/../src_name.hostname.ext')
|
22
19
|
expect(config_file.destination).to eq source
|
23
20
|
end
|
24
21
|
end
|
25
22
|
end
|
26
23
|
|
27
24
|
describe "#source" do
|
28
|
-
|
29
25
|
context "when host-specific file not found" do
|
30
|
-
|
31
26
|
let(:source) { 'path/../src_name.ext' }
|
32
27
|
|
33
28
|
it "returns the source path" do
|
34
29
|
config_file.source = source
|
35
30
|
allow(config_file).to receive(:search_for_host_specific_file).with(source)
|
36
|
-
|
31
|
+
.and_return(nil)
|
37
32
|
expect(config_file.source).to eq source
|
38
33
|
end
|
39
34
|
end
|
40
35
|
|
41
36
|
context "when host-specific file found" do
|
42
|
-
|
43
37
|
let(:source) { 'path/../src_name.ext' }
|
44
38
|
|
45
39
|
it "returns the host-specific source path" do
|
46
40
|
config_file.source = source
|
47
41
|
allow(config_file).to receive(:search_for_host_specific_file).with(source)
|
48
|
-
|
42
|
+
.and_return('path/../src_name.hostname.ext')
|
49
43
|
expect(config_file.source).to eq 'path/../src_name.hostname.ext'
|
50
44
|
end
|
51
45
|
end
|
52
46
|
end
|
53
47
|
|
54
48
|
describe "#install" do
|
55
|
-
|
56
49
|
context "when config file should be installed" do
|
57
|
-
|
58
50
|
it "installs the config file and returns true" do
|
59
51
|
expect(config_file).to receive(:install?).and_return(true)
|
60
52
|
expect(config_file).to receive(:install_file)
|
@@ -65,7 +57,6 @@ describe ConfigCurator::ConfigFile do
|
|
65
57
|
end
|
66
58
|
|
67
59
|
context "when config file should not be installed" do
|
68
|
-
|
69
60
|
it "does not install the config file and returns false" do
|
70
61
|
expect(config_file).to receive(:install?).and_return(false)
|
71
62
|
expect(config_file).to_not receive(:install_file)
|
@@ -77,16 +68,13 @@ describe ConfigCurator::ConfigFile do
|
|
77
68
|
end
|
78
69
|
|
79
70
|
describe "#install?" do
|
80
|
-
|
81
71
|
context "when source not given" do
|
82
|
-
|
83
72
|
it "fails" do
|
84
73
|
expect { config_file.install? }.to raise_error ConfigCurator::Symlink::InstallFailed
|
85
74
|
end
|
86
75
|
end
|
87
76
|
|
88
77
|
context "when source does not exist" do
|
89
|
-
|
90
78
|
it "fails" do
|
91
79
|
config_file.source = 'dir/that/does/not/exist'
|
92
80
|
expect { config_file.install? }.to raise_error ConfigCurator::Symlink::InstallFailed
|
data/spec/units/symlink_spec.rb
CHANGED
@@ -1,13 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe ConfigCurator::Symlink do
|
4
|
-
|
5
4
|
subject(:symlink) { ConfigCurator::Symlink.new }
|
6
5
|
|
7
6
|
describe "#install" do
|
8
|
-
|
9
7
|
context "when symbolic link should be installed" do
|
10
|
-
|
11
8
|
it "installs the symbolic link and returns true" do
|
12
9
|
expect(symlink).to receive(:install?).and_return true
|
13
10
|
expect(symlink).to receive(:install_symlink)
|
@@ -16,7 +13,6 @@ describe ConfigCurator::Symlink do
|
|
16
13
|
end
|
17
14
|
|
18
15
|
context "when symbolic link should not be installed" do
|
19
|
-
|
20
16
|
it "does not install the symbolic link and returns false" do
|
21
17
|
expect(symlink).to receive(:install?).and_return false
|
22
18
|
expect(symlink).to_not receive(:install_symlink)
|
@@ -26,9 +22,7 @@ describe ConfigCurator::Symlink do
|
|
26
22
|
end
|
27
23
|
|
28
24
|
describe "#install?" do
|
29
|
-
|
30
25
|
context "when source not given" do
|
31
|
-
|
32
26
|
it "fails" do
|
33
27
|
symlink.destination = 'link_path'
|
34
28
|
expect { symlink.install? }.to raise_error ConfigCurator::Symlink::InstallFailed
|
@@ -36,7 +30,6 @@ describe ConfigCurator::Symlink do
|
|
36
30
|
end
|
37
31
|
|
38
32
|
context "when destination not given" do
|
39
|
-
|
40
33
|
it "fails" do
|
41
34
|
symlink.source = 'file'
|
42
35
|
expect { symlink.install? }.to raise_error ConfigCurator::Symlink::InstallFailed
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: config_curator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Boyd Sosenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-02-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.
|
19
|
+
version: '4.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 4.
|
26
|
+
version: '4.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: thor
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.19
|
33
|
+
version: '0.19'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.19
|
40
|
+
version: '0.19'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,28 +58,28 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.5
|
61
|
+
version: '0.5'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.5
|
68
|
+
version: '0.5'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: yard
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.8.7
|
75
|
+
version: 0.8.7
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.8.7
|
82
|
+
version: 0.8.7
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: yard-redcarpet-ext
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,168 +100,168 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 3.
|
103
|
+
version: '3.2'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 3.
|
110
|
+
version: '3.2'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: github-markup
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.
|
117
|
+
version: '1.3'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.
|
124
|
+
version: '1.3'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: rubocop
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.
|
131
|
+
version: '0.28'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0.
|
138
|
+
version: '0.28'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: rake
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 10.
|
145
|
+
version: '10.4'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 10.
|
152
|
+
version: '10.4'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: guard
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 2.
|
159
|
+
version: '2.11'
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 2.
|
166
|
+
version: '2.11'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: guard-yard
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: 2.1
|
173
|
+
version: '2.1'
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: 2.1
|
180
|
+
version: '2.1'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: guard-rubocop
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
185
|
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: 1.
|
187
|
+
version: '1.2'
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version: 1.
|
194
|
+
version: '1.2'
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: guard-rspec
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
199
|
- - "~>"
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: 4.
|
201
|
+
version: '4.5'
|
202
202
|
type: :development
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: 4.
|
208
|
+
version: '4.5'
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: rspec
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
213
|
- - "~>"
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version: 3.
|
215
|
+
version: '3.1'
|
216
216
|
type: :development
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
220
|
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: 3.
|
222
|
+
version: '3.1'
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: simplecov
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
227
|
- - "~>"
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version: 0.
|
229
|
+
version: '0.9'
|
230
230
|
type: :development
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
234
|
- - "~>"
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version: 0.
|
236
|
+
version: '0.9'
|
237
237
|
- !ruby/object:Gem::Dependency
|
238
238
|
name: coveralls
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
240
240
|
requirements:
|
241
241
|
- - "~>"
|
242
242
|
- !ruby/object:Gem::Version
|
243
|
-
version: 0.7
|
243
|
+
version: '0.7'
|
244
244
|
type: :development
|
245
245
|
prerelease: false
|
246
246
|
version_requirements: !ruby/object:Gem::Requirement
|
247
247
|
requirements:
|
248
248
|
- - "~>"
|
249
249
|
- !ruby/object:Gem::Version
|
250
|
-
version: 0.7
|
250
|
+
version: '0.7'
|
251
251
|
- !ruby/object:Gem::Dependency
|
252
252
|
name: fuubar
|
253
253
|
requirement: !ruby/object:Gem::Requirement
|
254
254
|
requirements:
|
255
255
|
- - "~>"
|
256
256
|
- !ruby/object:Gem::Version
|
257
|
-
version: 2.0
|
257
|
+
version: '2.0'
|
258
258
|
type: :development
|
259
259
|
prerelease: false
|
260
260
|
version_requirements: !ruby/object:Gem::Requirement
|
261
261
|
requirements:
|
262
262
|
- - "~>"
|
263
263
|
- !ruby/object:Gem::Version
|
264
|
-
version: 2.0
|
264
|
+
version: '2.0'
|
265
265
|
description: ''
|
266
266
|
email:
|
267
267
|
- razorx@evansosenko.com
|
@@ -270,6 +270,7 @@ executables:
|
|
270
270
|
extensions: []
|
271
271
|
extra_rdoc_files: []
|
272
272
|
files:
|
273
|
+
- ".editorconfig"
|
273
274
|
- ".gitignore"
|
274
275
|
- ".rspec"
|
275
276
|
- ".rubocop.yml"
|
@@ -323,7 +324,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
323
324
|
version: '0'
|
324
325
|
requirements: []
|
325
326
|
rubyforge_project:
|
326
|
-
rubygems_version: 2.
|
327
|
+
rubygems_version: 2.4.5
|
327
328
|
signing_key:
|
328
329
|
specification_version: 4
|
329
330
|
summary: Simple and intelligent configuration file management.
|