bogo-config 0.1.4 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|