configurability 3.4.1 → 4.0.0
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.md +18 -0
- data/README.md +7 -1
- data/Rakefile +4 -85
- data/lib/configurability.rb +2 -3
- data/lib/configurability/config.rb +8 -36
- data/spec/configurability/config_spec.rb +0 -7
- metadata +26 -93
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: efc3714f0ce8a75574f4850ab886d79b52953333f93542a205bbc5b2a0e5c9c1
|
4
|
+
data.tar.gz: 9a27d42bd4d637c9866f9e2f764c307a9e9df0081aaf839c6441d50eaad1c6c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ebf734283d52e1c93127fb3f2d24e1fb8a7a9bce01895384c5ac626d8fb7e43064492a2251a27d8f5dd9b06e2cde1aee643661a15e485b7004b6630b1e69bc4a
|
7
|
+
data.tar.gz: aa92af53f1d07a2260f7ddbf78927b622e4724af8593a2316353b5b2f3a9b705112f1dd465651eb8e0f0da5838469e33ad1faff3fb1f94f7ad8c885d4e85e6b9
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
# Release History for configurability
|
2
|
+
|
3
|
+
---
|
4
|
+
|
5
|
+
|
6
|
+
## v4.0.0 [2020-01-08] Michael Granger <ged@faeriemud.org>
|
7
|
+
|
8
|
+
Breaking changes:
|
9
|
+
|
10
|
+
- Remove tainting, which is deprecated in 2.7 and beyond.
|
11
|
+
|
12
|
+
Enhancements:
|
13
|
+
|
14
|
+
- Enable SafeYAML if it's loaded
|
15
|
+
|
16
|
+
|
1
17
|
## v3.4.1 [2019-09-03] Michael Granger <ged@FaerieMUD.org>
|
2
18
|
|
3
19
|
Bugfixes:
|
@@ -12,6 +28,8 @@ Documentation:
|
|
12
28
|
|
13
29
|
## v3.4.0 [2019-09-01] Michael Granger <ged@FaerieMUD.org>
|
14
30
|
|
31
|
+
(Yanked due to inaccurate minimum Ruby version)
|
32
|
+
|
15
33
|
Bugfixes:
|
16
34
|
|
17
35
|
- Remove old command that depended on Trollop
|
data/README.md
CHANGED
@@ -435,9 +435,15 @@ This task will install any missing dependencies, run the tests/specs,
|
|
435
435
|
and generate the API documentation.
|
436
436
|
|
437
437
|
|
438
|
+
## Authors
|
439
|
+
|
440
|
+
- Michael Granger <ged@faeriemud.org>
|
441
|
+
- Mahlon E. Smith <mahlon@martini.nu>
|
442
|
+
|
443
|
+
|
438
444
|
## License
|
439
445
|
|
440
|
-
Copyright (c) 2010-
|
446
|
+
Copyright (c) 2010-2020 Michael Granger and Mahlon E. Smith
|
441
447
|
All rights reserved.
|
442
448
|
|
443
449
|
Redistribution and use in source and binary forms, with or without
|
data/Rakefile
CHANGED
@@ -1,89 +1,8 @@
|
|
1
|
-
#!/usr/bin/env rake
|
1
|
+
#!/usr/bin/env ruby -S rake
|
2
2
|
|
3
|
-
|
4
|
-
require 'hoe'
|
5
|
-
rescue LoadError
|
6
|
-
abort "This Rakefile requires 'hoe' (gem install hoe)"
|
7
|
-
end
|
8
|
-
|
9
|
-
GEMSPEC = 'configurability.gemspec'
|
10
|
-
|
11
|
-
Hoe.plugin :mercurial
|
12
|
-
Hoe.plugin :signing
|
13
|
-
Hoe.plugin :deveiate
|
14
|
-
|
15
|
-
Hoe.plugins.delete :rubyforge
|
16
|
-
|
17
|
-
Encoding.default_internal = Encoding::UTF_8
|
18
|
-
|
19
|
-
hoespec = Hoe.spec 'configurability' do |spec|
|
20
|
-
spec.readme_file = 'README.md'
|
21
|
-
spec.history_file = 'History.md'
|
22
|
-
spec.extra_rdoc_files = FileList[ '*.rdoc', '*.md' ]
|
23
|
-
spec.license 'BSD-3-Clause'
|
24
|
-
spec.urls = {
|
25
|
-
home: 'https://configur.ability.guide/',
|
26
|
-
code: 'https://hg.sr.ht/ged/Configurability',
|
27
|
-
docs: 'https://deveiate.org/code/configurability',
|
28
|
-
github: 'https://github.com/ged/configurability',
|
29
|
-
}
|
3
|
+
require 'rake/deveiate'
|
30
4
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
spec.dependency 'loggability', '~> 0.14'
|
35
|
-
|
36
|
-
spec.dependency 'hoe-deveiate', '~> 0.8', :developer
|
37
|
-
spec.dependency 'simplecov', '~> 0.12', :developer
|
38
|
-
spec.dependency 'rspec', '~> 3.8', :developer
|
39
|
-
|
40
|
-
spec.require_ruby_version( '>= 2.5.0' )
|
41
|
-
|
42
|
-
spec.hg_sign_tags = true if spec.respond_to?( :hg_sign_tags= )
|
43
|
-
spec.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
|
5
|
+
Rake::DevEiate.setup( 'configurability' ) do |project|
|
6
|
+
project.publish_to = 'deveiate:/usr/local/www/public/code'
|
44
7
|
end
|
45
8
|
|
46
|
-
ENV['VERSION'] ||= hoespec.spec.version.to_s
|
47
|
-
|
48
|
-
# Ensure the specs pass before checking in
|
49
|
-
task 'hg:precheckin' => [ :check_history, :check_manifest, :gemspec, :spec ]
|
50
|
-
|
51
|
-
|
52
|
-
desc "Build a coverage report"
|
53
|
-
task :coverage do
|
54
|
-
ENV["COVERAGE"] = 'yes'
|
55
|
-
Rake::Task[:spec].invoke
|
56
|
-
end
|
57
|
-
|
58
|
-
|
59
|
-
# Use the fivefish formatter for docs generated from development checkout
|
60
|
-
if File.directory?( '.hg' )
|
61
|
-
require 'rdoc/task'
|
62
|
-
|
63
|
-
Rake::Task[ 'docs' ].clear
|
64
|
-
RDoc::Task.new( 'docs' ) do |rdoc|
|
65
|
-
rdoc.main = "README.md"
|
66
|
-
rdoc.rdoc_files.include( "*.rdoc", "*.md", "ChangeLog", "lib/**/*.rb" )
|
67
|
-
rdoc.generator = :fivefish
|
68
|
-
rdoc.title = 'Configurability'
|
69
|
-
rdoc.rdoc_dir = 'doc'
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
|
74
|
-
task :gemspec => [ 'ChangeLog', GEMSPEC ]
|
75
|
-
file GEMSPEC => __FILE__ do |task|
|
76
|
-
spec = $hoespec.spec
|
77
|
-
spec.files.delete( '.gemtest' )
|
78
|
-
spec.files.delete( 'LICENSE' )
|
79
|
-
spec.signing_key = nil
|
80
|
-
spec.version = "#{spec.version.bump}.0.pre#{Time.now.strftime("%Y%m%d%H%M%S")}"
|
81
|
-
spec.cert_chain = [ 'certs/ged.pem' ]
|
82
|
-
File.open( task.name, 'w' ) do |fh|
|
83
|
-
fh.write( spec.to_ruby )
|
84
|
-
end
|
85
|
-
end
|
86
|
-
CLOBBER.include( GEMSPEC )
|
87
|
-
|
88
|
-
task :default => :gemspec
|
89
|
-
|
data/lib/configurability.rb
CHANGED
@@ -14,7 +14,7 @@ module Configurability
|
|
14
14
|
|
15
15
|
|
16
16
|
# Library version constant
|
17
|
-
VERSION = '
|
17
|
+
VERSION = '4.0.0'
|
18
18
|
|
19
19
|
# Version-control revision constant
|
20
20
|
REVISION = %q$Revision$
|
@@ -301,8 +301,7 @@ module Configurability
|
|
301
301
|
@config.each_pair do |key, value|
|
302
302
|
Configurability.log.debug "Looking for %p config attribute" % [ key ]
|
303
303
|
next unless self.respond_to?( "#{key}=" )
|
304
|
-
Configurability.log.debug " setting %p to %p
|
305
|
-
[ key, value ]
|
304
|
+
Configurability.log.debug " setting %p to %p" % [ key, value ]
|
306
305
|
self.public_send( "#{key}=", value )
|
307
306
|
end
|
308
307
|
else
|
@@ -43,6 +43,10 @@ class Configurability::Config
|
|
43
43
|
log_to :configurability
|
44
44
|
|
45
45
|
|
46
|
+
# Make safe loading the default if SafeYAML is loaded
|
47
|
+
SafeYAML::OPTIONS[:default_mode] = :safe if defined?( SafeYAML )
|
48
|
+
|
49
|
+
|
46
50
|
#############################################################
|
47
51
|
### C L A S S M E T H O D S
|
48
52
|
#############################################################
|
@@ -256,7 +260,7 @@ class Configurability::Config
|
|
256
260
|
end
|
257
261
|
end
|
258
262
|
|
259
|
-
ihash = symbolify_keys(
|
263
|
+
ihash = symbolify_keys( hash )
|
260
264
|
idefaults = symbolify_keys( defaults )
|
261
265
|
mergedhash = idefaults.merge( ihash, &mergefunc )
|
262
266
|
|
@@ -285,41 +289,9 @@ class Configurability::Config
|
|
285
289
|
|
286
290
|
|
287
291
|
# A collection of data-structure-manipulation functions.
|
292
|
+
# :TODO: Replace with #transform_keys after 2.4's EOL
|
288
293
|
module DataUtilities
|
289
294
|
|
290
|
-
### Return a copy of the specified +hash+ with all of its values
|
291
|
-
### untainted.
|
292
|
-
def untaint_hash( hash )
|
293
|
-
newhash = {}
|
294
|
-
hash.each_key do |key|
|
295
|
-
newhash[ key ] = untaint_value( hash[key] )
|
296
|
-
end
|
297
|
-
return newhash
|
298
|
-
end
|
299
|
-
|
300
|
-
|
301
|
-
### Return an untainted copy of the specified +val+.
|
302
|
-
def untaint_value( val )
|
303
|
-
case val
|
304
|
-
when Hash
|
305
|
-
return untaint_hash( val )
|
306
|
-
|
307
|
-
when Array
|
308
|
-
return val.collect {|v| untaint_value(v) }
|
309
|
-
|
310
|
-
when NilClass, TrueClass, FalseClass, Numeric, Symbol, Encoding
|
311
|
-
return val
|
312
|
-
|
313
|
-
else
|
314
|
-
if val.respond_to?( :dup ) && val.respond_to?( :untaint )
|
315
|
-
return val.dup.untaint
|
316
|
-
else
|
317
|
-
return val
|
318
|
-
end
|
319
|
-
end
|
320
|
-
end
|
321
|
-
|
322
|
-
|
323
295
|
### Return a duplicate of the given +hash+ with its identifier-like keys
|
324
296
|
### transformed into symbols from whatever they were before.
|
325
297
|
def symbolify_keys( hash )
|
@@ -400,7 +372,7 @@ class Configurability::Config
|
|
400
372
|
# Return the value associated with the specified +key+, or another
|
401
373
|
# Configurability::Config::ConfigStruct if +key+ is a section name.
|
402
374
|
def []( key )
|
403
|
-
key = key.
|
375
|
+
key = key.to_sym if key.respond_to?( :to_sym )
|
404
376
|
|
405
377
|
# Convert Hashes to Struct on the fly for subsections
|
406
378
|
@hash[ key ] = self.class.new( @hash[key] ) if @hash[ key ].is_a?( Hash )
|
@@ -411,7 +383,7 @@ class Configurability::Config
|
|
411
383
|
|
412
384
|
### Set the value associated with the specified +key+ to +value+.
|
413
385
|
def []=( key, value )
|
414
|
-
key = key.
|
386
|
+
key = key.to_sym
|
415
387
|
self.mark_dirty if @hash[ key ] != value
|
416
388
|
@hash[ key ] = value
|
417
389
|
end
|
@@ -119,13 +119,6 @@ describe Configurability::Config do
|
|
119
119
|
end
|
120
120
|
|
121
121
|
|
122
|
-
it "untaints values loaded from a config" do
|
123
|
-
yaml = TEST_CONFIG.dup.taint
|
124
|
-
config = described_class.new( yaml )
|
125
|
-
expect( config.listsection.first ).to_not be_tainted
|
126
|
-
expect( config.textsection ).to_not be_tainted
|
127
|
-
end
|
128
|
-
|
129
122
|
|
130
123
|
context "a config with nil keys" do
|
131
124
|
|
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:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Granger
|
@@ -12,8 +12,8 @@ cert_chain:
|
|
12
12
|
- |
|
13
13
|
-----BEGIN CERTIFICATE-----
|
14
14
|
MIIENDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
|
15
|
-
|
16
|
-
|
15
|
+
REM9RmFlcmllTVVEL0RDPW9yZzAeFw0xOTEwMDkwMDM2NTdaFw0yMDEwMDgwMDM2
|
16
|
+
NTdaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
|
17
17
|
hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvyVhkRzvlEs0fe7145BYLfN6njX9ih5H
|
18
18
|
L60U0p0euIurpv84op9CNKF9tx+1WKwyQvQP7qFGuZxkSUuWcP/sFhDXL1lWUuIl
|
19
19
|
M4uHbGCRmOshDrF4dgnBeOvkHr1fIhPlJm5FO+Vew8tSQmlDsosxLUx+VB7DrVFO
|
@@ -25,17 +25,17 @@ cert_chain:
|
|
25
25
|
N2I4L/ZOIe2DIVuYH7aLHfjZDQv/mNgpAgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYD
|
26
26
|
VR0PBAQDAgSwMB0GA1UdDgQWBBRyjf55EbrHagiRLqt5YAd3yb8k4DAcBgNVHREE
|
27
27
|
FTATgRFnZWRARmFlcmllTVVELm9yZzAcBgNVHRIEFTATgRFnZWRARmFlcmllTVVE
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
28
|
+
Lm9yZzANBgkqhkiG9w0BAQsFAAOCAYEAFqsr6o0SvQRgjQVmhbQvExRnCMCoW1yb
|
29
|
+
FJiN7A5RA2Iy2E61OG1Ul5nGmaDmx/PNB/6JIbIV3B9Uq8aTZx4uOjK7r8vMl1/t
|
30
|
+
ZfY7r6HejJfXlcO2m6JDMbpdyEVv916LncBkzZRz6vnnNCx+31f15FKddxujpAFd
|
31
|
+
qpn3JRQY+oj7ZkoccL/IUiDpxQWeS3oOoz9qr2kVTp8R50InZimt79FqCl/1m66W
|
32
|
+
kdOuf+wM3DDx7Rt4IVNHrhGlyfMr7xjKW1Q3gll+pMN1DT6Ajx/t3JDSEg7BnnEW
|
33
|
+
r7AciSO6J4ApUdqyG+coLFlGdtgFTgRHv7ihbQtDI7Z/LV7A4Spn1j2PK3j0Omri
|
34
|
+
kSl1hPVigRytfgdVGiLXzvkkrkgj9EknCaj5UHbac7XvVBrljXj9hsnnqTANaKsg
|
35
|
+
jBZSA+N+xUTgUWpXjjwsLZjzJkhWATJWq+krNXcqpwXo6HsjmdUxoFMt63RBb+sI
|
36
|
+
XrxOxp8o0uOkU7FdLSGsyqJ2LzsR4obN
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date: 2020-01-08 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: loggability
|
@@ -43,56 +43,28 @@ dependencies:
|
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '0.
|
46
|
+
version: '0.15'
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '0.
|
53
|
+
version: '0.15'
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
|
-
name:
|
55
|
+
name: rake-deveiate
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
60
|
+
version: '0.5'
|
61
61
|
type: :development
|
62
62
|
prerelease: false
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
name: hoe-deveiate
|
70
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - "~>"
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '0.10'
|
75
|
-
type: :development
|
76
|
-
prerelease: false
|
77
|
-
version_requirements: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - "~>"
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '0.10'
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
name: hoe-highline
|
84
|
-
requirement: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - "~>"
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '0.2'
|
89
|
-
type: :development
|
90
|
-
prerelease: false
|
91
|
-
version_requirements: !ruby/object:Gem::Requirement
|
92
|
-
requirements:
|
93
|
-
- - "~>"
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: '0.2'
|
67
|
+
version: '0.5'
|
96
68
|
- !ruby/object:Gem::Dependency
|
97
69
|
name: simplecov
|
98
70
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,48 +85,14 @@ dependencies:
|
|
113
85
|
requirements:
|
114
86
|
- - "~>"
|
115
87
|
- !ruby/object:Gem::Version
|
116
|
-
version: '3.
|
88
|
+
version: '3.9'
|
117
89
|
type: :development
|
118
90
|
prerelease: false
|
119
91
|
version_requirements: !ruby/object:Gem::Requirement
|
120
92
|
requirements:
|
121
93
|
- - "~>"
|
122
94
|
- !ruby/object:Gem::Version
|
123
|
-
version: '3.
|
124
|
-
- !ruby/object:Gem::Dependency
|
125
|
-
name: rdoc
|
126
|
-
requirement: !ruby/object:Gem::Requirement
|
127
|
-
requirements:
|
128
|
-
- - ">="
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: '4.0'
|
131
|
-
- - "<"
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '7'
|
134
|
-
type: :development
|
135
|
-
prerelease: false
|
136
|
-
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
requirements:
|
138
|
-
- - ">="
|
139
|
-
- !ruby/object:Gem::Version
|
140
|
-
version: '4.0'
|
141
|
-
- - "<"
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
version: '7'
|
144
|
-
- !ruby/object:Gem::Dependency
|
145
|
-
name: hoe
|
146
|
-
requirement: !ruby/object:Gem::Requirement
|
147
|
-
requirements:
|
148
|
-
- - "~>"
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
version: '3.18'
|
151
|
-
type: :development
|
152
|
-
prerelease: false
|
153
|
-
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
requirements:
|
155
|
-
- - "~>"
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '3.18'
|
95
|
+
version: '3.9'
|
158
96
|
description: |-
|
159
97
|
Configurability is a unified, non-intrusive, assume-nothing configuration system
|
160
98
|
for Ruby. It lets you keep the configuration for multiple objects in a single
|
@@ -162,14 +100,11 @@ description: |-
|
|
162
100
|
configuration when you're ready, sending it everywhere it needs to go with a
|
163
101
|
single action.
|
164
102
|
email:
|
165
|
-
- ged@
|
103
|
+
- ged@faeriemud.org
|
166
104
|
- mahlon@martini.nu
|
167
105
|
executables: []
|
168
106
|
extensions: []
|
169
|
-
extra_rdoc_files:
|
170
|
-
- History.md
|
171
|
-
- Manifest.txt
|
172
|
-
- README.md
|
107
|
+
extra_rdoc_files: []
|
173
108
|
files:
|
174
109
|
- ChangeLog
|
175
110
|
- History.md
|
@@ -194,25 +129,23 @@ licenses:
|
|
194
129
|
- BSD-3-Clause
|
195
130
|
metadata: {}
|
196
131
|
post_install_message:
|
197
|
-
rdoc_options:
|
198
|
-
- "--main"
|
199
|
-
- README.md
|
132
|
+
rdoc_options: []
|
200
133
|
require_paths:
|
201
134
|
- lib
|
202
135
|
required_ruby_version: !ruby/object:Gem::Requirement
|
203
136
|
requirements:
|
204
137
|
- - ">="
|
205
138
|
- !ruby/object:Gem::Version
|
206
|
-
version:
|
139
|
+
version: '0'
|
207
140
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
208
141
|
requirements:
|
209
142
|
- - ">="
|
210
143
|
- !ruby/object:Gem::Version
|
211
144
|
version: '0'
|
212
145
|
requirements: []
|
213
|
-
rubygems_version: 3.
|
146
|
+
rubygems_version: 3.1.2
|
214
147
|
signing_key:
|
215
148
|
specification_version: 4
|
216
149
|
summary: Configurability is a unified, non-intrusive, assume-nothing configuration
|
217
|
-
system for Ruby
|
150
|
+
system for Ruby.
|
218
151
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|