libis-tools 1.0.5-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.coveralls.yml +2 -0
- data/.gitignore +16 -0
- data/.rspec +2 -0
- data/.travis.yml +40 -0
- data/Gemfile +7 -0
- data/README.md +202 -0
- data/Rakefile +11 -0
- data/bin/libis_tool +5 -0
- data/lib/libis-tools.rb +1 -0
- data/lib/libis/tools.rb +25 -0
- data/lib/libis/tools/assert.rb +52 -0
- data/lib/libis/tools/checksum.rb +106 -0
- data/lib/libis/tools/cli/cli_helper.rb +189 -0
- data/lib/libis/tools/cli/reorg.rb +416 -0
- data/lib/libis/tools/command.rb +133 -0
- data/lib/libis/tools/command_line.rb +23 -0
- data/lib/libis/tools/config.rb +147 -0
- data/lib/libis/tools/config_file.rb +85 -0
- data/lib/libis/tools/csv.rb +38 -0
- data/lib/libis/tools/deep_struct.rb +71 -0
- data/lib/libis/tools/extend/array.rb +16 -0
- data/lib/libis/tools/extend/empty.rb +7 -0
- data/lib/libis/tools/extend/hash.rb +147 -0
- data/lib/libis/tools/extend/kernel.rb +25 -0
- data/lib/libis/tools/extend/ostruct.rb +3 -0
- data/lib/libis/tools/extend/roo.rb +91 -0
- data/lib/libis/tools/extend/string.rb +94 -0
- data/lib/libis/tools/extend/struct.rb +29 -0
- data/lib/libis/tools/extend/symbol.rb +8 -0
- data/lib/libis/tools/logger.rb +130 -0
- data/lib/libis/tools/mets_dnx.rb +61 -0
- data/lib/libis/tools/mets_file.rb +504 -0
- data/lib/libis/tools/mets_objects.rb +547 -0
- data/lib/libis/tools/parameter.rb +372 -0
- data/lib/libis/tools/spreadsheet.rb +196 -0
- data/lib/libis/tools/temp_file.rb +42 -0
- data/lib/libis/tools/thread_safe.rb +31 -0
- data/lib/libis/tools/version.rb +5 -0
- data/lib/libis/tools/xml_document.rb +583 -0
- data/libis-tools.gemspec +55 -0
- data/spec/assert_spec.rb +65 -0
- data/spec/checksum_spec.rb +68 -0
- data/spec/command_spec.rb +90 -0
- data/spec/config_file_spec.rb +83 -0
- data/spec/config_spec.rb +113 -0
- data/spec/csv_spec.rb +159 -0
- data/spec/data/test-headers.csv +2 -0
- data/spec/data/test-headers.tsv +2 -0
- data/spec/data/test-noheaders.csv +1 -0
- data/spec/data/test-noheaders.tsv +1 -0
- data/spec/data/test.data +9 -0
- data/spec/data/test.xlsx +0 -0
- data/spec/data/test.xml +8 -0
- data/spec/data/test.yml +2 -0
- data/spec/data/test_config.yml +15 -0
- data/spec/deep_struct_spec.rb +138 -0
- data/spec/logger_spec.rb +165 -0
- data/spec/mets_file_spec.rb +223 -0
- data/spec/parameter_container_spec.rb +152 -0
- data/spec/parameter_spec.rb +148 -0
- data/spec/spec_helper.rb +29 -0
- data/spec/spreadsheet_spec.rb +1820 -0
- data/spec/temp_file_spec.rb +76 -0
- data/spec/test.xsd +20 -0
- data/spec/thread_safe_spec.rb +64 -0
- data/spec/xmldocument_spec.rb +421 -0
- data/test/test_helper.rb +7 -0
- data/test/webservices/test_ca_item_info.rb +59 -0
- data/test/webservices/test_ca_search.rb +35 -0
- metadata +437 -0
data/libis-tools.gemspec
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
lib = File.expand_path('../lib', __FILE__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
|
6
|
+
require 'libis/tools/version'
|
7
|
+
require 'date'
|
8
|
+
|
9
|
+
Gem::Specification.new do |spec|
|
10
|
+
spec.name = 'libis-tools'
|
11
|
+
spec.version = ::Libis::Tools::VERSION
|
12
|
+
spec.date = Date.today.to_s
|
13
|
+
|
14
|
+
spec.summary = %q{LIBIS toolbox.}
|
15
|
+
spec.description = %q{Some tool classes for other LIBIS gems.}
|
16
|
+
|
17
|
+
spec.authors = ['Kris Dekeyser']
|
18
|
+
spec.email = ['kris.dekeyser@libis.be']
|
19
|
+
spec.homepage = 'https://github.com/Kris-LIBIS/LIBIS_Tools'
|
20
|
+
spec.license = 'MIT'
|
21
|
+
|
22
|
+
spec.platform = Gem::Platform::JAVA if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
|
23
|
+
|
24
|
+
spec.files = `git ls-files -z`.split("\x0")
|
25
|
+
spec.bindir = 'bin'
|
26
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
27
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
28
|
+
|
29
|
+
spec.require_paths = ['lib']
|
30
|
+
spec.has_rdoc = 'yard'
|
31
|
+
|
32
|
+
spec.add_development_dependency 'bundler', '> 1.6'
|
33
|
+
spec.add_development_dependency 'rake', '~> 10.3'
|
34
|
+
spec.add_development_dependency 'rspec', '~> 3.1'
|
35
|
+
spec.add_development_dependency 'term-ansicolor', '~> 1.6'
|
36
|
+
spec.add_development_dependency 'equivalent-xml', '~> 0.5'
|
37
|
+
spec.add_development_dependency 'awesome_print', '~> 1.6'
|
38
|
+
|
39
|
+
spec.add_runtime_dependency 'backports', '~> 3.6'
|
40
|
+
spec.add_runtime_dependency 'nokogiri', '~> 1.6'
|
41
|
+
spec.add_runtime_dependency 'gyoku', '~> 1.3'
|
42
|
+
spec.add_runtime_dependency 'nori', '~> 2.6'
|
43
|
+
spec.add_runtime_dependency 'recursive-open-struct', '~> 1.0'
|
44
|
+
spec.add_runtime_dependency 'parslet', '~> 1.7'
|
45
|
+
spec.add_runtime_dependency 'simple_xlsx_reader', '~> 1.0'
|
46
|
+
spec.add_runtime_dependency 'logging', '~> 2.0'
|
47
|
+
spec.add_runtime_dependency 'concurrent-ruby', '~> 1.0'
|
48
|
+
spec.add_runtime_dependency 'yard', '~> 0.9.11'
|
49
|
+
spec.add_runtime_dependency 'roo', '~> 2.5'
|
50
|
+
spec.add_runtime_dependency 'roo-xls', '~> 1.0'
|
51
|
+
spec.add_runtime_dependency 'tty-prompt'
|
52
|
+
spec.add_runtime_dependency 'tty-config'
|
53
|
+
spec.add_runtime_dependency 'thor'
|
54
|
+
|
55
|
+
end
|
data/spec/assert_spec.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require_relative 'spec_helper'
|
3
|
+
require 'libis/tools/assert'
|
4
|
+
|
5
|
+
describe 'Assert' do
|
6
|
+
|
7
|
+
before :example do
|
8
|
+
$DEBUG = true
|
9
|
+
end
|
10
|
+
|
11
|
+
after :example do
|
12
|
+
$DEBUG = false
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should throw an assert exception when statement is false' do
|
16
|
+
|
17
|
+
message = 'Testing the assert with false.'
|
18
|
+
expect {
|
19
|
+
assert(false, message)
|
20
|
+
}.to raise_error(AssertionFailure, message)
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should only throw an assert in debug mode' do
|
25
|
+
|
26
|
+
$DEBUG = false
|
27
|
+
expect {
|
28
|
+
assert(false, 'Testing the assert with false.')
|
29
|
+
}.to_not raise_error
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should not throw an assert if statement is true' do
|
34
|
+
|
35
|
+
expect {
|
36
|
+
assert(true, 'Testing the assert with true.')
|
37
|
+
}.to_not raise_error
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should throw an assert on nil' do
|
42
|
+
|
43
|
+
message = 'Testing the assert with nil.'
|
44
|
+
expect {
|
45
|
+
assert(nil, message)
|
46
|
+
}.to raise_error(AssertionFailure, message)
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should check the given block if present' do
|
50
|
+
|
51
|
+
message = 'block test'
|
52
|
+
expect {
|
53
|
+
assert(message) do
|
54
|
+
false
|
55
|
+
end
|
56
|
+
}.to raise_error(AssertionFailure, message)
|
57
|
+
|
58
|
+
expect {
|
59
|
+
assert(message) do
|
60
|
+
true
|
61
|
+
end
|
62
|
+
}.to_not raise_error
|
63
|
+
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require_relative 'spec_helper'
|
3
|
+
require 'libis/tools/checksum'
|
4
|
+
|
5
|
+
describe 'Checksum' do
|
6
|
+
|
7
|
+
def hex2base64(hexdigest)
|
8
|
+
[[hexdigest].pack('H*')].pack('m0')
|
9
|
+
end
|
10
|
+
|
11
|
+
def hex2string(hexdigest)
|
12
|
+
[hexdigest].pack('H*')
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should not know how to calculate ABC checksum' do
|
16
|
+
|
17
|
+
checksum_type = :ABC
|
18
|
+
|
19
|
+
expect {
|
20
|
+
::Libis::Tools::Checksum.hexdigest('abc', checksum_type)
|
21
|
+
}.to raise_error(RuntimeError, "Checksum type 'ABC' not supported.")
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
let(:filename) { File.join(File.dirname(__FILE__), 'data', 'test.data') }
|
26
|
+
|
27
|
+
CHECKSUM_RESULTS = {
|
28
|
+
MD5: 'fe249d8dd45a39793f315fb0734ffe2c',
|
29
|
+
SHA1: 'e8f322d186699807a98a0cefb5015acf1554f954',
|
30
|
+
SHA256: '2a742e643dd79427738bdc0ebd0d2837f998fe2101a964c2d5014905d331bbc4',
|
31
|
+
SHA384: '71083b74394f49db6149ad9147103f7693ec823183750ce32a2215bbd7ee5e75212e2d794243c7e76c7318a4ddcf9a56',
|
32
|
+
SHA512: '10964f5272729c2670ccad67754284fb06cca1387270c184c2edbcd032700548297916c8e109a10e019c25b86c646e95a3456c465f83d571502889f97b483e6f'
|
33
|
+
}
|
34
|
+
|
35
|
+
# noinspection RubyResolve
|
36
|
+
unless defined? JRUBY_VERSION
|
37
|
+
CHECKSUM_RESULTS[:RMD160] = '17c9eaad9ccbaad0e030c2c5d60fd9d58255cc39'
|
38
|
+
end
|
39
|
+
|
40
|
+
filename = File.join(File.dirname(__FILE__), 'data', 'test.data')
|
41
|
+
file = File.absolute_path(filename)
|
42
|
+
string = File.read(filename)
|
43
|
+
SUBJECTS = {
|
44
|
+
string: string,
|
45
|
+
file: file
|
46
|
+
}
|
47
|
+
|
48
|
+
CHECKSUM_RESULTS.each do |checksum_type, digest|
|
49
|
+
|
50
|
+
SUBJECTS.each do |subject_type, subject|
|
51
|
+
|
52
|
+
it "should calculate #{checksum_type} from #{subject_type}" do
|
53
|
+
expect(::Libis::Tools::Checksum.hexdigest(subject, checksum_type)).to eq digest
|
54
|
+
expect(::Libis::Tools::Checksum.base64digest(subject, checksum_type)).to eq hex2base64(digest)
|
55
|
+
expect(::Libis::Tools::Checksum.digest(subject, checksum_type)).to eq hex2string(digest)
|
56
|
+
|
57
|
+
checksum = ::Libis::Tools::Checksum.new(checksum_type)
|
58
|
+
|
59
|
+
expect(checksum.hexdigest(subject)).to eq digest
|
60
|
+
expect(checksum.base64digest(subject)).to eq hex2base64(digest)
|
61
|
+
expect(checksum.digest(subject)).to eq hex2string(digest)
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require_relative 'spec_helper'
|
3
|
+
require 'libis/tools/command'
|
4
|
+
|
5
|
+
describe 'Command' do
|
6
|
+
|
7
|
+
let!(:dir) { Dir.pwd }
|
8
|
+
let(:entries) {
|
9
|
+
Dir.entries('.').inject([]) do |array, value|
|
10
|
+
array << value unless File.directory?(value)
|
11
|
+
array
|
12
|
+
end.sort
|
13
|
+
}
|
14
|
+
|
15
|
+
before(:each) { Dir.chdir(File.join(File.dirname(__FILE__),'data')) }
|
16
|
+
after(:each) { Dir.chdir(dir) }
|
17
|
+
|
18
|
+
it 'should run ls command' do
|
19
|
+
|
20
|
+
result = Libis::Tools::Command.run('ls')
|
21
|
+
|
22
|
+
output = result[:out].map {|x| x.split(/\s+/)}.flatten.compact
|
23
|
+
expect(output.size).to eq entries.size
|
24
|
+
expect(output.sort).to match entries
|
25
|
+
expect(result[:err]).to eq []
|
26
|
+
expect(result[:status]).to eq 0
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should run ls command with an option' do
|
31
|
+
|
32
|
+
result = Libis::Tools::Command.run('ls', '-1')
|
33
|
+
|
34
|
+
output = result[:out]
|
35
|
+
puts output.sort
|
36
|
+
expect(output.size).to eq entries.size
|
37
|
+
expect(output.sort).to match entries
|
38
|
+
expect(result[:err]).to eq []
|
39
|
+
expect(result[:status]).to eq 0
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'should run ls command with multiple options' do
|
44
|
+
|
45
|
+
result = Libis::Tools::Command.run('ls', '-1', '-a', '-p')
|
46
|
+
|
47
|
+
output = result[:out]
|
48
|
+
expect(output.size).to eq entries.size + 2
|
49
|
+
expect(output[0]).to eq './'
|
50
|
+
expect(output[1]).to eq '../'
|
51
|
+
expect(output[2..-1].sort).to match entries
|
52
|
+
expect(result[:err]).to eq []
|
53
|
+
expect(result[:status]).to eq 0
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'should capture error output and status' do
|
58
|
+
|
59
|
+
result = Libis::Tools::Command.run('ls', 'abc')
|
60
|
+
expect(result[:out]).to eq []
|
61
|
+
expect(result[:err].size).to eq 1
|
62
|
+
expect(result[:err][0]).to match /ls: cannot access '?abc'?: No such file or directory/
|
63
|
+
expect(result[:status]).to eq 2
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'should allow to supply input data' do
|
68
|
+
|
69
|
+
result = Libis::Tools::Command.run('cat', stdin_data: "FooBar", timeout: 1)
|
70
|
+
expect(result[:out]).to eq ['FooBar']
|
71
|
+
expect(result[:err].size).to eq 0
|
72
|
+
expect(result[:status]).to eq 0
|
73
|
+
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'should not timeout if command finishes' do
|
77
|
+
|
78
|
+
result = Libis::Tools::Command.run('cat', stdin_data: "FooBar", timeout: 1)
|
79
|
+
expect(result[:timeout]).to be_falsey
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'should timeout if command hangs' do
|
84
|
+
|
85
|
+
result = Libis::Tools::Command.run('ls', '-aRlp', '/', timeout: 1)
|
86
|
+
expect(result[:timeout]).to be_truthy
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require_relative 'spec_helper'
|
3
|
+
require 'libis/tools/config_file'
|
4
|
+
|
5
|
+
describe ::Libis::Tools::ConfigFile do
|
6
|
+
|
7
|
+
let!(:test_file) { File.join(File.dirname(__FILE__), 'data', 'test_config.yml') }
|
8
|
+
|
9
|
+
let(:hash) {
|
10
|
+
{
|
11
|
+
a: {x: 0, y: 0, z: 0},
|
12
|
+
b: {x: 10, y: -5, z: 2.5},
|
13
|
+
c: [
|
14
|
+
[
|
15
|
+
{a: [{a1: 1, a2: 2}]},
|
16
|
+
]
|
17
|
+
]
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
context 'after default initialization' do
|
22
|
+
|
23
|
+
it 'has empty hash' do
|
24
|
+
# noinspection RubyResolve
|
25
|
+
expect(subject.to_hash).to be_empty
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'loads from file' do
|
29
|
+
subject << test_file
|
30
|
+
expect(subject.to_hash).to eq hash
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'loads a hash' do
|
34
|
+
subject << hash
|
35
|
+
expect(subject.to_hash).to eq hash
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'allows to change sub-hash' do
|
39
|
+
subject << hash
|
40
|
+
# noinspection RubyResolve
|
41
|
+
subject.b.v = 1
|
42
|
+
hash[:b][:v] = 1
|
43
|
+
expect(subject.to_hash).to eq hash
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'allows to change hash in array' do
|
47
|
+
subject << hash
|
48
|
+
# noinspection RubyResolve
|
49
|
+
subject.c[0][0].a[0].v = 1
|
50
|
+
hash[:c][0][0][:a][0][:v] = 1
|
51
|
+
expect(subject.to_hash).to eq hash
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
context 'initialization with hash' do
|
57
|
+
subject { ::Libis::Tools::ConfigFile.new hash }
|
58
|
+
|
59
|
+
it 'has hash' do
|
60
|
+
expect(subject.to_hash).to eq hash
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
context 'initialization with file' do
|
66
|
+
subject { ::Libis::Tools::ConfigFile.new test_file }
|
67
|
+
|
68
|
+
it 'has hash' do
|
69
|
+
expect(subject.to_hash).to eq hash
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
context 'initialization with hash from YAML file' do
|
75
|
+
subject { ::Libis::Tools::ConfigFile.new YAML.load_file(test_file)}
|
76
|
+
|
77
|
+
it 'has hash' do
|
78
|
+
expect(subject.to_hash).to eq hash
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
data/spec/config_spec.rb
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require_relative 'spec_helper'
|
3
|
+
require 'libis/tools/config'
|
4
|
+
|
5
|
+
describe 'Config' do
|
6
|
+
|
7
|
+
before(:all) do
|
8
|
+
::Libis::Tools::Config << {appname: 'LIBIS Default'}
|
9
|
+
end
|
10
|
+
|
11
|
+
subject(:config) { ::Libis::Tools::Config.clear! }
|
12
|
+
|
13
|
+
it 'has defaults set' do
|
14
|
+
expect(config.logger).to be_a ::Logging::Logger
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'clears all values' do
|
18
|
+
# noinspection RubyResolve
|
19
|
+
config.test_value = 5
|
20
|
+
config.logger.level = :FATAL
|
21
|
+
# noinspection RubyResolve
|
22
|
+
expect(config.test_value).to be 5
|
23
|
+
expect(config.logger.level).to be ::Logging::level_num(:FATAL)
|
24
|
+
|
25
|
+
config.clear!
|
26
|
+
# noinspection RubyResolve
|
27
|
+
expect(config.test_value).to be_nil
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'adding values with setters' do
|
31
|
+
|
32
|
+
it 'by symbol' do
|
33
|
+
config[:test_value] = 5
|
34
|
+
expect(config['test_value']).to be 5
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'by name' do
|
38
|
+
config['test_value'] = 6
|
39
|
+
# noinspection RubyResolve
|
40
|
+
expect(config.test_value).to be 6
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'by method' do
|
44
|
+
# noinspection RubyResolve
|
45
|
+
config.test_value = 7
|
46
|
+
expect(config[:test_value]).to be 7
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'allows to set on instance' do
|
50
|
+
config.instance[:test_value] = :abc
|
51
|
+
# noinspection RubyResolve
|
52
|
+
expect(config.test_value).to be :abc
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'allows to set on class' do
|
56
|
+
# noinspection RubyResolve
|
57
|
+
config.test_value = :def
|
58
|
+
expect(config.instance[:test_value]).to be :def
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
context 'loading from file' do
|
64
|
+
|
65
|
+
let(:test_file) { File.join(File.dirname(__FILE__), 'data', 'test.yml') }
|
66
|
+
subject(:config) {
|
67
|
+
Libis::Tools::Config.clear! << test_file
|
68
|
+
}
|
69
|
+
|
70
|
+
it 'has configuration parameters set' do
|
71
|
+
expect(config.process).to eq 'Test Configuration'
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'resets only values loaded from file' do
|
75
|
+
config[:process] = 'foo'
|
76
|
+
config[:bar] = 'qux'
|
77
|
+
|
78
|
+
expect(config.process).to eq 'foo'
|
79
|
+
expect(config.bar).to eq 'qux'
|
80
|
+
|
81
|
+
config.reload
|
82
|
+
expect(config.process).to eq 'Test Configuration'
|
83
|
+
expect(config.bar).to eq 'qux'
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'resets all values' do
|
87
|
+
config[:process] = 'foo'
|
88
|
+
config[:bar] = 'qux'
|
89
|
+
|
90
|
+
expect(config.process).to eq 'foo'
|
91
|
+
expect(config.bar).to eq 'qux'
|
92
|
+
|
93
|
+
config.reload!
|
94
|
+
expect(config.process).to eq 'Test Configuration'
|
95
|
+
expect(config.bar).to be_nil
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'clears all values' do
|
99
|
+
config[:process] = 'foo'
|
100
|
+
config[:bar] = 'qux'
|
101
|
+
|
102
|
+
expect(config.process).to eq 'foo'
|
103
|
+
expect(config.bar).to eq 'qux'
|
104
|
+
|
105
|
+
config.clear!
|
106
|
+
expect(config.process).to be_nil
|
107
|
+
expect(config.bar).to be_nil
|
108
|
+
# noinspection RubyResolve
|
109
|
+
expect(config.to_h).to be_empty
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
113
|
+
end
|