configurability 3.2.0 → 3.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 4ffd2e97221e0558f84a3a455089aaa44aa2a41d
4
- data.tar.gz: 42b0863e1184683ccaea9e807da969de757d3b43
2
+ SHA256:
3
+ metadata.gz: 16a729acbe5d059681f8a971a92bb4aff1928d6f6c3f62e5abdfb58ed860fbe7
4
+ data.tar.gz: f4aec87e5e323a5867ac2ca4dd898c9a8803a2b563b431b51e5e701d3d143626
5
5
  SHA512:
6
- metadata.gz: b19de705961544e8f61f671855151391b3635768f126551dd7fac083f0c06c73c472c3171df35b1a93771204af394bc6fb75e2e5970b5c970cb5db7a6ac7f458
7
- data.tar.gz: 2ea226c4cefde892364f1da8d50fe4666f180748dd1801f0c49b884be0771c2ae5bd70e67187cf3cf2b3dbbd03ee8c1dc45691fb2dd47e45acda7a948c5b0b09
6
+ metadata.gz: f59c67a1291be6d46da72404be01fc1e4074c3784f63002452b0f36b035021ad763a64516276722386d85928c3485d9a77e2240eed82a00575c95ec07c8a317a
7
+ data.tar.gz: 93f0b06f7cfa0e48578700ea41e6c3b27dce0dc3ab5dd3183c67d0cb4af9ffb7ade5b3b785b5787afbcb53123416ac69863a0919d874dba02bfe9a63378252b6
Binary file
data.tar.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -1,8 +1,20 @@
1
+ 2018-06-12 Michael Granger <ged@FaerieMUD.org>
2
+
3
+ * certs/ged.pem:
4
+ Update my gem-signing cert
5
+ [1612a72e6636] [tip]
6
+
7
+ 2018-04-03 Mahlon E. Smith <mahlon@martini.nu>
8
+
9
+ * .ruby-version, Rakefile, bin/configurability:
10
+ Add a 'defaults' dumper to the configurability executable.
11
+ [6eb89a9c81e9]
12
+
1
13
  2017-04-17 Michael Granger <ged@FaerieMUD.org>
2
14
 
3
15
  * .hgtags:
4
16
  Added tag v3.2.0 for changeset f29a2ec77509
5
- [a21b6f09e76c] [tip]
17
+ [a21b6f09e76c]
6
18
 
7
19
  * .hgsigs:
8
20
  Added signature for changeset c1a8ffc3266f
data/History.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## v3.3.0 [2018-09-12] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ Enhancements:
4
+
5
+ - Declare the class/class-instance variable when declaring a setting
6
+ - Add a 'defaults' subcommand to the configurability executable
7
+
8
+
1
9
  ## v3.2.0 [2017-04-17] Michael Granger <ged@FaerieMUD.org>
2
10
 
3
11
  Enhancements:
data/Rakefile CHANGED
@@ -31,7 +31,7 @@ hoespec = Hoe.spec 'configurability' do |spec|
31
31
  spec.developer 'Michael Granger', 'ged@FaerieMUD.org'
32
32
  spec.developer 'Mahlon E. Smith', 'mahlon@martini.nu'
33
33
 
34
- spec.dependency 'loggability', '~> 0.12'
34
+ spec.dependency 'loggability', '~> 0.14'
35
35
 
36
36
  spec.dependency 'hoe-deveiate', '~> 0.8', :developer
37
37
  spec.dependency 'simplecov', '~> 0.12', :developer
@@ -289,6 +289,13 @@ class Configurability::Command
289
289
  help :version, "Prints the Configurability version."
290
290
 
291
291
 
292
+ ### The 'defaults' command
293
+ def defaults_command( *args )
294
+ $stdout.puts Configurability.default_config.dump
295
+ end
296
+ help :defaults, "Display configuration defaults for loaded libraries"
297
+
298
+
292
299
  #
293
300
  # Helper methods
294
301
  #
@@ -13,10 +13,10 @@ module Configurability
13
13
 
14
14
 
15
15
  # Library version constant
16
- VERSION = '3.2.0'
16
+ VERSION = '3.3.0'
17
17
 
18
18
  # Version-control revision constant
19
- REVISION = %q$Revision: c1a8ffc3266f $
19
+ REVISION = %q$Revision: 29114ac9dc2b $
20
20
 
21
21
  require 'configurability/deferred_config'
22
22
 
@@ -84,7 +84,7 @@ class Configurability::Config
84
84
 
85
85
  # Make a deep copy of the defaults before loading so we don't modify
86
86
  # the argument
87
- @defaults = Marshal.load( Marshal.dump(defaults) ) if defaults
87
+ @defaults = defaults ? Marshal.load( Marshal.dump(defaults) ) : nil
88
88
  @time_created = Time.now
89
89
  @path = path
90
90
 
@@ -39,6 +39,12 @@ class Configurability::SettingInstaller
39
39
 
40
40
  ### Add accessors with the specified +name+ to the target.
41
41
  def add_setting_accessors( name, options, &writer_hook )
42
+ if options[:use_class_vars]
43
+ self.target.class_variable_set( "@@#{name}", nil )
44
+ else
45
+ self.target.instance_variable_set( "@#{name}", nil )
46
+ end
47
+
42
48
  reader = self.make_setting_reader( name, options )
43
49
  writer = self.make_setting_writer( name, options, &writer_hook )
44
50
 
@@ -56,7 +62,9 @@ class Configurability::SettingInstaller
56
62
  self.class_variable_get("@@#{name}")
57
63
  end
58
64
  else
59
- return lambda { self.instance_variable_get("@#{name}") }
65
+ return lambda {
66
+ self.instance_variable_get("@#{name}")
67
+ }
60
68
  end
61
69
  end
62
70
 
@@ -255,7 +255,7 @@ describe Configurability::Config do
255
255
  # loading from a file
256
256
  context " loaded from a file" do
257
257
  before( :all ) do
258
- filename = Dir::Tmpname.make_tmpname( './test', '.conf' )
258
+ filename = Dir::Tmpname.create( ['./test', '.conf'] ) {}
259
259
  @tmpfile = Pathname( filename )
260
260
  @tmpfile.open( 'w', 0644 ) {|io| io.print(TEST_CONFIG) }
261
261
  end
@@ -284,7 +284,7 @@ describe Configurability::Config do
284
284
 
285
285
  it "can be written to a different file" do
286
286
  begin
287
- path = Dir::Tmpname.make_tmpname( './another-', '.config' )
287
+ path = Dir::Tmpname.create( ['./another-', '.config'] ) {}
288
288
 
289
289
  config.write( path )
290
290
  expect( File.read(path) ).to match( /section: ?\n subsection/ )
@@ -333,7 +333,7 @@ describe Configurability::Config do
333
333
  context " whose file changes after loading" do
334
334
 
335
335
  before( :all ) do
336
- filename = Dir::Tmpname.make_tmpname( './test', '.conf' )
336
+ filename = Dir::Tmpname.create( ['./test', '.conf'] ) {}
337
337
  @tmpfile = Pathname( filename )
338
338
  @tmpfile.open( 'w', 0644 ) {|io| io.print(TEST_CONFIG) }
339
339
  end
@@ -404,21 +404,22 @@ describe Configurability do
404
404
  defaults = Configurability.gather_defaults
405
405
 
406
406
  expect( defaults ).to eq({ testconfig: { sect1: {sect2: { one: 1, two: 2 }} } })
407
+ expect( klass.config_key ).to eq( :testconfig__sect1__sect2 )
407
408
  end
408
409
 
409
410
 
410
411
  it "can return a Configurability::Config object with defaults, too" do
411
- klass1 = Class.new do
412
+ _klass1 = Class.new do
412
413
  extend Configurability
413
414
  config_key :testconfig
414
415
  self::CONFIG_DEFAULTS = { :one => 1, :types => {:one => true} }
415
416
  end
416
- klass2 = Class.new do
417
+ _klass2 = Class.new do
417
418
  extend Configurability
418
419
  config_key :testconfig
419
420
  self::DEFAULT_CONFIG = { :two => 2, :types => {:two => true} }
420
421
  end
421
- klass3 = Class.new do
422
+ _klass3 = Class.new do
422
423
  extend Configurability
423
424
  config_key :otherconfig
424
425
  def self::defaults; { :other => true }; end
@@ -442,7 +443,7 @@ describe Configurability do
442
443
  self::CONFIG_DEFAULTS = { :one => 1, :types => {:one => true} }
443
444
  Configurability.log.debug "Defaults: %p" % [ self.defaults ]
444
445
  end
445
- subclass = Class.new( klass ) do
446
+ _subclass = Class.new( klass ) do
446
447
  config_key :spanishconfig
447
448
  self::CONFIG_DEFAULTS = { :uno => 1 }
448
449
  end
@@ -670,7 +671,6 @@ describe Configurability do
670
671
  end
671
672
 
672
673
  child_class = Class.new( parent_class )
673
- child_class..extend( Configurability )
674
674
  child_class.configurability( :testconfig ) do
675
675
  setting :environment, default: :staging
676
676
  setting :apikey, default: 'foom'
@@ -35,6 +35,8 @@ RSpec.configure do |config|
35
35
  config.mock_with( :rspec ) do |mock|
36
36
  mock.syntax = :expect
37
37
  end
38
+ config.warnings = true
39
+ config.profile_examples = 5
38
40
 
39
41
  config.include( Loggability::SpecHelpers )
40
42
  end
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: 3.2.0
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -11,9 +11,9 @@ bindir: bin
11
11
  cert_chain:
12
12
  - |
13
13
  -----BEGIN CERTIFICATE-----
14
- MIIEbDCCAtSgAwIBAgIBATANBgkqhkiG9w0BAQsFADA+MQwwCgYDVQQDDANnZWQx
14
+ MIIEbDCCAtSgAwIBAgIBATANBgkqhkiG9w0BAQUFADA+MQwwCgYDVQQDDANnZWQx
15
15
  GTAXBgoJkiaJk/IsZAEZFglGYWVyaWVNVUQxEzARBgoJkiaJk/IsZAEZFgNvcmcw
16
- HhcNMTYwODIwMTgxNzQyWhcNMTcwODIwMTgxNzQyWjA+MQwwCgYDVQQDDANnZWQx
16
+ HhcNMTcwOTI3MDAzMDQ0WhcNMTgwOTI3MDAzMDQ0WjA+MQwwCgYDVQQDDANnZWQx
17
17
  GTAXBgoJkiaJk/IsZAEZFglGYWVyaWVNVUQxEzARBgoJkiaJk/IsZAEZFgNvcmcw
18
18
  ggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC/JWGRHO+USzR97vXjkFgt
19
19
  83qeNf2KHkcvrRTSnR64i6um/ziin0I0oX23H7VYrDJC9A/uoUa5nGRJS5Zw/+wW
@@ -26,17 +26,17 @@ cert_chain:
26
26
  /D+K9JW9DDs3Yjgv9k4h7YMhW5gftosd+NkNC/+Y2CkCAwEAAaN1MHMwCQYDVR0T
27
27
  BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFHKN/nkRusdqCJEuq3lgB3fJvyTg
28
28
  MBwGA1UdEQQVMBOBEWdlZEBGYWVyaWVNVUQub3JnMBwGA1UdEgQVMBOBEWdlZEBG
29
- YWVyaWVNVUQub3JnMA0GCSqGSIb3DQEBCwUAA4IBgQAPJzKiT0zBU7kpqe0aS2qb
30
- FI0PJ4y5I8buU4IZGUD5NEt/N7pZNfOyBxkrZkXhS44Fp+xwBH5ebLbq/WY78Bqd
31
- db0z6ZgW4LMYMpWFfbXsRbd9TU2f52L8oMAhxOvF7Of5qJMVWuFQ8FPagk2iHrdH
32
- inYLQagqAF6goWTXgAJCdPd6SNeeSNqA6vlY7CV1Jh5kfNJJ6xu/CVij1GzCLu/5
33
- DMOr26DBv+qLJRRC/2h34uX71q5QgeOyxvMg+7V3u/Q06DXyQ2VgeeqiwDFFpEH0
34
- PFkdPO6ZqbTRcLfNH7mFgCBJjsfSjJrn0sPBlYyOXgCoByfZnZyrIMH/UY+lgQqS
35
- 6Von1VDsfQm0eJh5zYZD64ZF86phSR7mUX3mXItwH04HrZwkWpvgd871DZVR3i1n
36
- w8aNA5re5+Rt/Vvjxj5AcEnZnZiz5x959NaddQocX32Z1unHw44pzRNUur1GInfW
37
- p4vpx2kUSFSAGjtCbDGTNV2AH8w9OU4xEmNz8c5lyoA=
29
+ YWVyaWVNVUQub3JnMA0GCSqGSIb3DQEBBQUAA4IBgQB/qyi5pCjK8ceoKalfVAjS
30
+ vG64FEnLnD1bm39T5UaFIRmo+abZtfpg2QhwKvPbPjOicau2+m+MDQ2Cc3tgyaC3
31
+ dZxcP6w8APFg4AId09uWAZKf0xajvBMS2aOz8Bbmag6fwqRRkTMqsNYnmqcF7aRT
32
+ DuEzbEMfaOUYjU9RuB48vr4q8yRft0ww+3jq5iwNkrX1buL2pwBbyvgms6D/BV41
33
+ MaTVMjsHqJUwU2xVfhGtxGAWAer5S1HGYHkbio6mGVtiie0uWjmnzi7ppIlMr48a
34
+ 7BNTsoZ+/JRk3iQWmmNsyFT7xfqBKye7cH11BX8V8P4MeGB5YWlMI+Myj5DZY3fQ
35
+ st2AGD4rb1l0ia7PfubcBThSIdz61eCb8gRi/RiZZwb3/7+eyEncLJzt2Ob9fGSF
36
+ X0qdrKi+2aZZ0NGuFj9AItBsVmAvkBGIpX4TEKQp5haEbPpmaqO5nIIhV26PXmyT
37
+ OMKv6pWsoS81vw5KAGBmfX8nht/Py90DQrbRvakATGI=
38
38
  -----END CERTIFICATE-----
39
- date: 2017-04-18 00:00:00.000000000 Z
39
+ date: 2018-09-12 00:00:00.000000000 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: loggability
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.12'
47
+ version: '0.14'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.12'
54
+ version: '0.14'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: hoe-mercurial
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.8'
75
+ version: '0.9'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0.8'
82
+ version: '0.9'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: hoe-highline
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '3.15'
145
+ version: '3.16'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '3.15'
152
+ version: '3.16'
153
153
  description: |-
154
154
  Configurability is a unified, non-intrusive, assume-nothing configuration system
155
155
  for Ruby. It lets you keep the configuration for multiple objects in a single
@@ -208,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
208
  version: '0'
209
209
  requirements: []
210
210
  rubyforge_project:
211
- rubygems_version: 2.6.8
211
+ rubygems_version: 2.7.6
212
212
  signing_key:
213
213
  specification_version: 4
214
214
  summary: Configurability is a unified, non-intrusive, assume-nothing configuration
metadata.gz.sig CHANGED
Binary file