configurability 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.rdoc +6 -0
- data/Rakefile +14 -13
- data/lib/configurability.rb +2 -2
- data/lib/configurability/config.rb +22 -15
- data/spec/configurability/config_spec.rb +14 -1
- metadata +22 -10
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06d07154d070a00edad0282c0dc59e0c5e66ef95
|
4
|
+
data.tar.gz: a4b60f5580fd34ca3d8d84adc19628381fb2c640
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d72df2c94b3d9d35fa8ec2b7485ca54c7c99a0f24fc061c6bf21c8c1f6d16a4f6e66aa8a2c87c6b988bf8e55168e7c805453a5a8f696656fefadd332101d993a
|
7
|
+
data.tar.gz: 0e9900c3689b65a0e4d5c6e63e66a953bace0b1f2cc94735369cdc6406756c8def7c60fe803fd2cddace09298816a6c3a4443d2f13253b1825f8238ecbcb7ea3
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
== v2.1.1 [2013-11-20] Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
- Fix untainting to not try to dup/untaint immediate objects.
|
4
|
+
Thanks to john@cozy.co for the bug report.
|
5
|
+
|
6
|
+
|
1
7
|
== v2.1.0 [2013-08-13] Michael Granger <ged@FaerieMUD.org>
|
2
8
|
|
3
9
|
- Fix behavior of inherited Configurability
|
data/Rakefile
CHANGED
@@ -10,29 +10,30 @@ end
|
|
10
10
|
Hoe.plugin :mercurial
|
11
11
|
Hoe.plugin :signing
|
12
12
|
Hoe.plugin :deveiate
|
13
|
+
Hoe.plugin :bundler
|
13
14
|
|
14
15
|
Hoe.plugins.delete :rubyforge
|
15
16
|
|
16
17
|
Encoding.default_internal = Encoding::UTF_8
|
17
18
|
|
18
|
-
hoespec = Hoe.spec 'configurability' do
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
hoespec = Hoe.spec 'configurability' do |spec|
|
20
|
+
spec.readme_file = 'README.rdoc'
|
21
|
+
spec.history_file = 'History.rdoc'
|
22
|
+
spec.extra_rdoc_files = Rake::FileList[ '*.rdoc' ]
|
23
|
+
spec.license 'BSD'
|
22
24
|
|
23
|
-
|
25
|
+
spec.developer 'Michael Granger', 'ged@FaerieMUD.org'
|
24
26
|
|
25
|
-
|
27
|
+
spec.dependency 'loggability', '~> 0.4'
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
+
spec.dependency 'hoe-deveiate', '~> 0.3', :developer
|
30
|
+
spec.dependency 'simplecov', '~> 0.5', :developer
|
31
|
+
spec.dependency 'hoe-bundler', '~> 1.2', :developer
|
29
32
|
|
30
|
-
|
31
|
-
self.spec_extras[:rdoc_options] = ['-f', 'fivefish', '-t', 'Configurability Toolkit']
|
32
|
-
self.require_ruby_version( '>= 1.9.2' )
|
33
|
+
spec.require_ruby_version( '>= 1.9.2' )
|
33
34
|
|
34
|
-
|
35
|
-
|
35
|
+
spec.hg_sign_tags = true if spec.respond_to?( :hg_sign_tags= )
|
36
|
+
spec.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
|
36
37
|
end
|
37
38
|
|
38
39
|
ENV['VERSION'] ||= hoespec.spec.version.to_s
|
data/lib/configurability.rb
CHANGED
@@ -18,10 +18,10 @@ module Configurability
|
|
18
18
|
|
19
19
|
|
20
20
|
# Library version constant
|
21
|
-
VERSION = '2.1.
|
21
|
+
VERSION = '2.1.1'
|
22
22
|
|
23
23
|
# Version-control revision constant
|
24
|
-
REVISION = %q$Revision:
|
24
|
+
REVISION = %q$Revision: 9d24e71e0018 $
|
25
25
|
|
26
26
|
require 'configurability/deferredconfig'
|
27
27
|
|
@@ -250,7 +250,7 @@ class Configurability::Config
|
|
250
250
|
else
|
251
251
|
YAML.load( source )
|
252
252
|
end
|
253
|
-
ihash = symbolify_keys(
|
253
|
+
ihash = symbolify_keys( untaint_hash(hash) )
|
254
254
|
mergedhash = defaults.merge( ihash, &mergefunc )
|
255
255
|
|
256
256
|
return Configurability::Config::Struct.new( mergedhash )
|
@@ -283,27 +283,34 @@ class Configurability::Config
|
|
283
283
|
|
284
284
|
### Return a copy of the specified +hash+ with all of its values
|
285
285
|
### untainted.
|
286
|
-
def
|
286
|
+
def untaint_hash( hash )
|
287
287
|
newhash = {}
|
288
|
-
hash.
|
289
|
-
|
290
|
-
|
291
|
-
|
288
|
+
hash.each_key do |key|
|
289
|
+
newhash[ key ] = untaint_value( hash[key] )
|
290
|
+
end
|
291
|
+
return newhash
|
292
|
+
end
|
292
293
|
|
293
|
-
when Array
|
294
|
-
newval = val.collect {|v| v.dup.untaint}
|
295
|
-
newhash[ key ] = newval
|
296
294
|
|
297
|
-
|
298
|
-
|
295
|
+
### Return an untainted copy of the specified +val+.
|
296
|
+
def untaint_value( val )
|
297
|
+
case val
|
298
|
+
when Hash
|
299
|
+
return untaint_hash( val )
|
300
|
+
|
301
|
+
when Array
|
302
|
+
return val.collect {|v| untaint_value(v) }
|
303
|
+
|
304
|
+
when NilClass, TrueClass, FalseClass, Numeric, Symbol, Encoding
|
305
|
+
return val
|
299
306
|
|
307
|
+
else
|
308
|
+
if val.respond_to?( :dup ) && val.respond_to?( :untaint )
|
309
|
+
return val.dup.untaint
|
300
310
|
else
|
301
|
-
|
302
|
-
newval.untaint
|
303
|
-
newhash[ key ] = newval
|
311
|
+
return val
|
304
312
|
end
|
305
313
|
end
|
306
|
-
return newhash
|
307
314
|
end
|
308
315
|
|
309
316
|
|
@@ -25,6 +25,12 @@ describe Configurability::Config do
|
|
25
25
|
- values
|
26
26
|
- are
|
27
27
|
- neat
|
28
|
+
listofints:
|
29
|
+
- 1
|
30
|
+
- 2
|
31
|
+
- 3
|
32
|
+
- 5
|
33
|
+
- 7
|
28
34
|
mergekey: Yep.
|
29
35
|
textsection: |-
|
30
36
|
With some text as the value
|
@@ -104,6 +110,13 @@ describe Configurability::Config do
|
|
104
110
|
expect( config.section.monkeysubsection? ).to be_false()
|
105
111
|
end
|
106
112
|
|
113
|
+
it "untaints values loaded from a config" do
|
114
|
+
yaml = TEST_CONFIG.dup.taint
|
115
|
+
config = described_class.new( yaml )
|
116
|
+
expect( config.listsection.first ).to_not be_tainted
|
117
|
+
expect( config.textsection ).to_not be_tainted
|
118
|
+
end
|
119
|
+
|
107
120
|
|
108
121
|
context "a config with nil keys" do
|
109
122
|
|
@@ -187,7 +200,7 @@ describe Configurability::Config do
|
|
187
200
|
end
|
188
201
|
|
189
202
|
it "provides a human-readable description of itself when inspected" do
|
190
|
-
expect( config.inspect ).to match(
|
203
|
+
expect( config.inspect ).to match( /\d+ sections/i )
|
191
204
|
expect( config.inspect ).to match( /mergekey/ )
|
192
205
|
expect( config.inspect ).to match( /textsection/ )
|
193
206
|
expect( config.inspect ).to match( /from memory/i )
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: configurability
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Granger
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
6mKCwjpegytE0oifXfF8k75A9105cBnNiMZOe1tXiqYc/exCgWvbggurzDOcRkZu
|
31
31
|
/YSusaiDXHKU2O3Akc3htA==
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2013-
|
33
|
+
date: 2013-11-20 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: loggability
|
@@ -89,19 +89,19 @@ dependencies:
|
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '4.0'
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
|
-
name:
|
92
|
+
name: hoe-deveiate
|
93
93
|
requirement: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - ~>
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: '
|
97
|
+
version: '0.3'
|
98
98
|
type: :development
|
99
99
|
prerelease: false
|
100
100
|
version_requirements: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - ~>
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
104
|
+
version: '0.3'
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
106
|
name: simplecov
|
107
107
|
requirement: !ruby/object:Gem::Requirement
|
@@ -116,6 +116,20 @@ dependencies:
|
|
116
116
|
- - ~>
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: '0.5'
|
119
|
+
- !ruby/object:Gem::Dependency
|
120
|
+
name: hoe-bundler
|
121
|
+
requirement: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '1.2'
|
126
|
+
type: :development
|
127
|
+
prerelease: false
|
128
|
+
version_requirements: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ~>
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '1.2'
|
119
133
|
- !ruby/object:Gem::Dependency
|
120
134
|
name: hoe
|
121
135
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,10 +184,8 @@ licenses:
|
|
170
184
|
metadata: {}
|
171
185
|
post_install_message:
|
172
186
|
rdoc_options:
|
173
|
-
-
|
174
|
-
-
|
175
|
-
- -t
|
176
|
-
- Configurability Toolkit
|
187
|
+
- --main
|
188
|
+
- README.rdoc
|
177
189
|
require_paths:
|
178
190
|
- lib
|
179
191
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -188,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
200
|
version: '0'
|
189
201
|
requirements: []
|
190
202
|
rubyforge_project: configurability
|
191
|
-
rubygems_version: 2.
|
203
|
+
rubygems_version: 2.1.10
|
192
204
|
signing_key:
|
193
205
|
specification_version: 4
|
194
206
|
summary: Configurability is a unified, unintrusive, assume-nothing configuration system
|
metadata.gz.sig
CHANGED
Binary file
|