bogo-config 0.1.4 → 0.1.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 +4 -4
- data/CHANGELOG.md +4 -0
- data/bogo-config.gemspec +1 -1
- data/lib/bogo-config/config.rb +18 -1
- data/lib/bogo-config/version.rb +1 -1
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c87e489d7f5e98f3b7e217441233a7eebeff576
|
4
|
+
data.tar.gz: 9fa263ded146de9170464dc5479afd21887b5e92
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9b7fc1f135514ec82a39afd689beffa1880298db778d276e4576297335bf4ca6fb910c72eef41969785160a827ab5542e2e1d104ec341101cb41ab6917addbe
|
7
|
+
data.tar.gz: 6df814abc69e071815f8c75785e248f241b1cfb3f21a336a185845c535e765c0dc2a8a954afb0d93e00ae64078b60a3fb3a483e77f7af8a2334e34434140b05a
|
data/CHANGELOG.md
CHANGED
data/bogo-config.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.description = 'Configuration helper library'
|
11
11
|
s.require_path = 'lib'
|
12
12
|
s.license = 'Apache 2.0'
|
13
|
-
s.add_dependency 'bogo'
|
13
|
+
s.add_dependency 'bogo', '>= 0.1.4', '< 1.0'
|
14
14
|
s.add_dependency 'multi_json'
|
15
15
|
s.add_dependency 'multi_xml'
|
16
16
|
s.add_dependency 'attribute_struct'
|
data/lib/bogo-config/config.rb
CHANGED
@@ -104,6 +104,13 @@ module Bogo
|
|
104
104
|
true
|
105
105
|
end
|
106
106
|
|
107
|
+
# Freeze underlying configuration data
|
108
|
+
#
|
109
|
+
# @return [self]
|
110
|
+
def immutable!
|
111
|
+
@data = data.to_smash(:freeze)
|
112
|
+
end
|
113
|
+
|
107
114
|
# Intialize the configuration
|
108
115
|
#
|
109
116
|
# @return [self]
|
@@ -115,9 +122,11 @@ module Bogo
|
|
115
122
|
hash = initial
|
116
123
|
end
|
117
124
|
if(hash)
|
125
|
+
is_immutable = data.frozen?
|
118
126
|
Thread.exclusive do
|
119
127
|
load_data(hash)
|
120
|
-
data
|
128
|
+
@data = hash.to_smash.deep_merge(data.to_smash)
|
129
|
+
@data.to_smash(:freeze) if is_immutable
|
121
130
|
end
|
122
131
|
end
|
123
132
|
self
|
@@ -126,6 +135,14 @@ module Bogo
|
|
126
135
|
# Allow Smash like behavior
|
127
136
|
def_delegators *([:data, :[]] + (Smash.public_instance_methods - Object.public_instance_methods))
|
128
137
|
|
138
|
+
# Override to force consistent data access (removes dirty
|
139
|
+
# functionality)
|
140
|
+
#
|
141
|
+
# @return [Smash]
|
142
|
+
def dirty
|
143
|
+
data
|
144
|
+
end
|
145
|
+
|
129
146
|
# Load configuration from file(s)
|
130
147
|
#
|
131
148
|
# @return [self]
|
data/lib/bogo-config/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bogo-config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Roberts
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bogo
|
@@ -16,14 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.1.4
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '1.0'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
29
|
+
version: 0.1.4
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.0'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: multi_json
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|