yaml_configuration 0.0.4 → 0.0.5
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.
- data/.gitignore +1 -0
- data/lib/yaml_configuration/loader.rb +2 -1
- data/lib/yaml_configuration/version.rb +1 -1
- data/tests/yaml_configuration/loader_tests.rb +43 -0
- metadata +11 -10
data/.gitignore
CHANGED
@@ -4,8 +4,9 @@ module YamlConfiguration
|
|
4
4
|
combined_configuration = {}
|
5
5
|
config_files.flatten.each do |config_file|
|
6
6
|
loaded_config = load_yaml_config(config_file)
|
7
|
-
combined_configuration.deep_merge(loaded_config)
|
7
|
+
combined_configuration.deep_merge!(loaded_config)
|
8
8
|
end
|
9
|
+
puts combined_configuration.inspect
|
9
10
|
Configuration.new(combined_configuration)
|
10
11
|
end
|
11
12
|
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require_relative '../tests_setup.rb'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'hash_deep_merge'
|
4
|
+
|
5
|
+
module YamlConfiguration
|
6
|
+
class LoaderTests < MiniTest::Unit::TestCase
|
7
|
+
def test_that_the_yaml_configs_get_deep_merged
|
8
|
+
config_a = {'user' => {'name' => 'David', 'surname' => 'Santoro', 'middle' => 'Maximillian'}, 'role' => 'developer'}
|
9
|
+
config_b = {'user' => {'name' => 'John'}, 'role' => 'artist'}
|
10
|
+
config_c = {'user' => {'surname' => 'Locke'}, 'role' => 'messiah'}
|
11
|
+
|
12
|
+
recreate_directory('tmp')
|
13
|
+
create_yaml_config_file(config_a, 'tmp/config_a.yml')
|
14
|
+
create_yaml_config_file(config_b, 'tmp/config_b.yml')
|
15
|
+
create_yaml_config_file(config_c, 'tmp/config_c.yml')
|
16
|
+
|
17
|
+
combined_config = Loader.new.load('tmp/config_a', 'tmp/config_b', 'tmp/config_c')
|
18
|
+
|
19
|
+
assert_equal 'John', combined_config.user.name
|
20
|
+
assert_equal 'Locke', combined_config.user.surname
|
21
|
+
assert_equal 'messiah', combined_config.role
|
22
|
+
assert_equal 'Maximillian', combined_config.user.middle
|
23
|
+
|
24
|
+
combined_config = Loader.new.load(['tmp/config_a', 'tmp/config_b', 'tmp/config_c'])
|
25
|
+
|
26
|
+
assert_equal 'John', combined_config.user.name
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
def recreate_directory(directory_path)
|
31
|
+
full_path = File.join(File.dirname(__FILE__), '../..',directory_path)
|
32
|
+
FileUtils.rm_rf full_path
|
33
|
+
FileUtils.mkdir_p full_path
|
34
|
+
end
|
35
|
+
|
36
|
+
def create_yaml_config_file(hash, file_path)
|
37
|
+
full_path = File.join(File.dirname(__FILE__),'../..', file_path)
|
38
|
+
File.open(full_path, 'w') do |file|
|
39
|
+
file.write(hash.to_yaml)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yaml_configuration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-06 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
16
|
-
requirement: &
|
16
|
+
requirement: &70833570 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70833570
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: turn
|
27
|
-
requirement: &
|
27
|
+
requirement: &70833290 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70833290
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: ansi
|
38
|
-
requirement: &
|
38
|
+
requirement: &70832770 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70832770
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: hash-deep-merge
|
49
|
-
requirement: &
|
49
|
+
requirement: &70832280 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70832280
|
58
58
|
description: Load, merge and provide sensible error messages when using yaml based
|
59
59
|
configuration
|
60
60
|
email:
|
@@ -72,6 +72,7 @@ files:
|
|
72
72
|
- lib/yaml_configuration/version.rb
|
73
73
|
- tests/tests_setup.rb
|
74
74
|
- tests/yaml_configuration/configuration_tests.rb
|
75
|
+
- tests/yaml_configuration/loader_tests.rb
|
75
76
|
- yaml_configuration.gemspec
|
76
77
|
homepage: http://github.com/soulnafein/yaml_configuration
|
77
78
|
licenses: []
|