configus 0.0.1 → 0.0.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.
- data/.travis.yml +7 -0
- data/README.md +2 -0
- data/Rakefile +4 -0
- data/configus.gemspec +1 -1
- data/lib/configus.rb +0 -2
- data/lib/configus/builder.rb +9 -1
- data/lib/configus/config.rb +5 -0
- data/lib/configus/version.rb +1 -1
- data/spec/configus/config_spec.rb +6 -1
- metadata +36 -61
data/.travis.yml
ADDED
data/README.md
CHANGED
data/Rakefile
CHANGED
data/configus.gemspec
CHANGED
data/lib/configus.rb
CHANGED
data/lib/configus/builder.rb
CHANGED
@@ -29,7 +29,7 @@ module Configus
|
|
29
29
|
parent = e[:options][:parent]
|
30
30
|
if parent
|
31
31
|
parent_config = result(parent)
|
32
|
-
current_config =
|
32
|
+
current_config = deep_merge(parent_config, current_config)
|
33
33
|
end
|
34
34
|
|
35
35
|
current_config
|
@@ -45,5 +45,13 @@ module Configus
|
|
45
45
|
@envs[env][:block] = block if block_given?
|
46
46
|
end
|
47
47
|
|
48
|
+
def deep_merge(target, source)
|
49
|
+
source.each_pair do |k,v|
|
50
|
+
tv = target[k]
|
51
|
+
target[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? deep_merge(tv, v) : v
|
52
|
+
end
|
53
|
+
target
|
54
|
+
end
|
55
|
+
|
48
56
|
end
|
49
57
|
end
|
data/lib/configus/config.rb
CHANGED
@@ -25,6 +25,11 @@ module Configus
|
|
25
25
|
@config[key]
|
26
26
|
end
|
27
27
|
|
28
|
+
def each_pair(&block)
|
29
|
+
#TODO: hash values should be Configus instance object
|
30
|
+
@config.each_pair(&block)
|
31
|
+
end
|
32
|
+
|
28
33
|
def method_missing(meth, *args, &blk)
|
29
34
|
raise "'#{meth}' key does not exists in your configus"
|
30
35
|
end
|
data/lib/configus/version.rb
CHANGED
@@ -7,7 +7,8 @@ describe Configus::Config do
|
|
7
7
|
:sections => {
|
8
8
|
:first => 'first_value',
|
9
9
|
:second => 'second_value'
|
10
|
-
}
|
10
|
+
},
|
11
|
+
:pairs => { :pkay => "vkay" }
|
11
12
|
}
|
12
13
|
@config = Configus::Config.new(@options)
|
13
14
|
end
|
@@ -25,5 +26,9 @@ describe Configus::Config do
|
|
25
26
|
@config[:foo] == @options[:foo]
|
26
27
|
@config[:sections].second == @options[:sections][:second]
|
27
28
|
end
|
29
|
+
|
30
|
+
it 'should passing each key-value pair' do
|
31
|
+
@config.pairs.each_pair { |key, value| } == @options[:pairs].each_pair { |key, value| }
|
32
|
+
end
|
28
33
|
end
|
29
34
|
|
metadata
CHANGED
@@ -1,61 +1,47 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: configus
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 1
|
10
|
-
version: 0.0.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Mokevnin Kirill
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-01-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rspec
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &16603100 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
32
22
|
type: :development
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: activesupport
|
36
23
|
prerelease: false
|
37
|
-
|
24
|
+
version_requirements: *16603100
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rake
|
27
|
+
requirement: &16602680 !ruby/object:Gem::Requirement
|
38
28
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
version: "0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
46
33
|
type: :runtime
|
47
|
-
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *16602680
|
48
36
|
description: Configus helps you easily manage environment specific settings
|
49
|
-
email:
|
37
|
+
email:
|
50
38
|
- mokevnin@gmail.com
|
51
39
|
executables: []
|
52
|
-
|
53
40
|
extensions: []
|
54
|
-
|
55
41
|
extra_rdoc_files: []
|
56
|
-
|
57
|
-
files:
|
42
|
+
files:
|
58
43
|
- .gitignore
|
44
|
+
- .travis.yml
|
59
45
|
- Gemfile
|
60
46
|
- README.md
|
61
47
|
- Rakefile
|
@@ -71,37 +57,26 @@ files:
|
|
71
57
|
- spec/spec_helper.rb
|
72
58
|
homepage: https://github.com/kaize/configus
|
73
59
|
licenses: []
|
74
|
-
|
75
60
|
post_install_message:
|
76
61
|
rdoc_options: []
|
77
|
-
|
78
|
-
require_paths:
|
62
|
+
require_paths:
|
79
63
|
- lib
|
80
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
65
|
none: false
|
82
|
-
requirements:
|
83
|
-
- -
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
86
|
-
|
87
|
-
- 0
|
88
|
-
version: "0"
|
89
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
71
|
none: false
|
91
|
-
requirements:
|
92
|
-
- -
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
|
95
|
-
segments:
|
96
|
-
- 0
|
97
|
-
version: "0"
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
98
76
|
requirements: []
|
99
|
-
|
100
77
|
rubyforge_project: configus
|
101
78
|
rubygems_version: 1.8.10
|
102
79
|
signing_key:
|
103
80
|
specification_version: 3
|
104
81
|
summary: Configus helps you easily manage environment specific settings
|
105
82
|
test_files: []
|
106
|
-
|
107
|
-
has_rdoc:
|