configurability 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -1,9 +1,42 @@
1
- 17[tip] e2bf2e43bccf 2010-10-25 10:53 -0700 ged
1
+ 28[tip] a2ae16f86c98 2010-11-29 15:43 -0800 ged
2
+ Added tag v1.0.3 for changeset 910ae8ac082f
3
+
4
+ 27[v1.0.3] 910ae8ac082f 2010-11-29 15:43 -0800 ged
5
+ Added signature for changeset 49e98e6334dd
6
+
7
+ 26[github/master,master]:25,24 49e98e6334dd 2010-11-29 15:32 -0800 ged
8
+ Merged with 24:7aec5228c2b0
9
+
10
+ 25:22 ec3f030074dc 2010-11-29 15:31 -0800 ged
11
+ Propagate the installed config to objects that add Configurability after the config is loaded.
12
+
13
+ 24 7aec5228c2b0 2010-10-29 18:00 -0700 ged
14
+ Added tag 1.0.2 for changeset ba2c849fde0d
15
+
16
+ 23[1.0.2]:21 ba2c849fde0d 2010-10-29 18:00 -0700 ged
17
+ Added signature for changeset 8718e7f4ea1f
18
+
19
+ 22 58cbefcef526 2010-11-29 15:29 -0800 ged
20
+ Updated build system
21
+
22
+ 21 8718e7f4ea1f 2010-10-29 17:32 -0700 ged
23
+ Fixes for specs under 1.9.2.
24
+
25
+ 20:17,19 17a6999c08b9 2010-10-29 17:29 -0700 ged
26
+ Merged with 17:e2bf2e43bccf
27
+
28
+ 19 e2bf2e43bccf 2010-10-25 10:53 -0700 ged
2
29
  Fixed require for RSpec 2 in the shared behavior.
3
30
 
4
- 16 5d18e28e387b 2010-10-25 10:48 -0700 ged
31
+ 18:15 5d18e28e387b 2010-10-25 10:48 -0700 ged
5
32
  Converted tests to RSpec 2.
6
33
 
34
+ 17 4bff6d5f7b6e 2010-08-08 10:26 -0700 ged
35
+ Added tag 1.0.1 for changeset e3605ccbe057
36
+
37
+ 16[1.0.1] e3605ccbe057 2010-08-08 10:26 -0700 ged
38
+ Added signature for changeset 41bc1de0bf36
39
+
7
40
  15 41bc1de0bf36 2010-08-04 18:51 -0700 ged
8
41
  More Configurability::Config work
9
42
 
data/Rakefile CHANGED
@@ -42,6 +42,7 @@ rescue LoadError
42
42
  end
43
43
  end
44
44
 
45
+ require 'pathname'
45
46
  require 'rbconfig'
46
47
  require 'rake'
47
48
  require 'rake/testtask'
@@ -189,7 +190,6 @@ RDOC_OPTIONS = [
189
190
  ]
190
191
  YARD_OPTIONS = [
191
192
  '--use-cache',
192
- '--no-private',
193
193
  '--protected',
194
194
  '-r', README_FILE,
195
195
  '--exclude', 'extconf\\.rb',
@@ -217,16 +217,15 @@ DEPENDENCIES = {
217
217
 
218
218
  # Developer Gem dependencies: gemname => version
219
219
  DEVELOPMENT_DEPENDENCIES = {
220
- 'rake' => '>= 0.8.7',
221
- 'rcodetools' => '>= 0.7.0.0',
222
- 'rcov' => '>= 0.8.1.2.0',
223
- 'rdoc' => '>= 2.4.3',
224
- 'RedCloth' => '>= 4.0.3',
225
- 'rspec' => '>= 1.2.6',
226
- 'ruby-termios' => '>= 0.9.6',
227
- 'text-format' => '>= 1.0.0',
228
- 'tmail' => '>= 1.2.3.1',
229
- 'diff-lcs' => '>= 1.1.2',
220
+ 'rake' => '~> 0.8.7',
221
+ 'rcodetools' => '~> 0.7.0.0',
222
+ 'rcov' => '~> 0.8.1.2.0',
223
+ 'yard' => '~> 0.6.1',
224
+ 'RedCloth' => '~> 4.2.3',
225
+ 'rspec' => '~> 2.0.1',
226
+ 'ruby-termios' => '~> 0.9.6',
227
+ 'text-format' => '~> 1.0.0',
228
+ 'tmail' => '~> 1.2.3.1',
230
229
  }
231
230
 
232
231
  # Non-gem requirements: packagename => version
@@ -247,9 +246,10 @@ GEMSPEC = Gem::Specification.new do |gem|
247
246
  "section it requested.",
248
247
  ].join( "\n" )
249
248
 
250
- gem.authors = "Michael Granger"
249
+ gem.authors = ["Michael Granger"]
251
250
  gem.email = ["ged@FaerieMUD.org"]
252
251
  gem.homepage = 'http://bitbucket.org/ged/configurability'
252
+ gem.licenses = ["BSD"]
253
253
 
254
254
  gem.has_rdoc = true
255
255
  gem.rdoc_options = RDOC_OPTIONS
@@ -272,6 +272,8 @@ GEMSPEC = Gem::Specification.new do |gem|
272
272
  gem.cert_chain = [File.expand_path('~/.gem/ged-public_gem_cert.pem')]
273
273
 
274
274
 
275
+ gem.required_ruby_version = '>= 1.8.7'
276
+
275
277
  DEPENDENCIES.each do |name, version|
276
278
  version = '>= 0' if version.length.zero?
277
279
  gem.add_runtime_dependency( name, version )
@@ -9,17 +9,21 @@ require 'yaml'
9
9
  module Configurability
10
10
 
11
11
  # Library version constant
12
- VERSION = '1.0.2'
12
+ VERSION = '1.0.3'
13
13
 
14
14
  # Version-control revision constant
15
- REVISION = %q$Revision: 17a6999c08b9 $
15
+ REVISION = %q$Revision: ec3f030074dc $
16
16
 
17
- require 'configurability/logformatter.rb'
17
+ require 'configurability/logformatter'
18
+ require 'configurability/deferredconfig'
18
19
 
19
20
 
20
21
  ### The objects that have had Configurability added to them
21
22
  @configurable_objects = []
22
23
 
24
+ ### The loaded config (if there is one)
25
+ @loaded_config = nil
26
+
23
27
  ### Logging
24
28
  @default_logger = Logger.new( $stderr )
25
29
  @default_logger.level = $DEBUG ? Logger::DEBUG : Logger::WARN
@@ -36,6 +40,10 @@ module Configurability
36
40
  # added to them
37
41
  attr_accessor :configurable_objects
38
42
 
43
+ # @return [Object] the loaded configuration (after ::configure_objects
44
+ # has been called at least once)
45
+ attr_accessor :loaded_config
46
+
39
47
  # @return [Logger::Formatter] the log formatter that will be used when the logging
40
48
  # subsystem is reset
41
49
  attr_accessor :default_log_formatter
@@ -55,6 +63,13 @@ module Configurability
55
63
  self.log.debug "Adding Configurability to %p" % [ object ]
56
64
  super
57
65
  self.configurable_objects << object
66
+
67
+ # If the config has already been propagated, add deferred configuration to the extending
68
+ # object in case it overrides #configure later.
69
+ if (( config = self.loaded_config ))
70
+ self.install_config( config, object )
71
+ object.extend( Configurability::DeferredConfig )
72
+ end
58
73
  end
59
74
 
60
75
 
@@ -69,7 +84,9 @@ module Configurability
69
84
  ### object itself doesn't have a name, the name of its class will be used instead.
70
85
  def self::make_key_from_object( object )
71
86
  if object.respond_to?( :name )
72
- return object.name.sub( /.*::/, '' ).gsub( /\W+/, '_' ).downcase.to_sym
87
+ name = object.name
88
+ name = 'anonymous' if name.nil? || name.empty?
89
+ return name.sub( /.*::/, '' ).gsub( /\W+/, '_' ).downcase.to_sym
73
90
  elsif object.class.name && !object.class.name.empty?
74
91
  return object.class.name.sub( /.*::/, '' ).gsub( /\W+/, '_' ).downcase.to_sym
75
92
  else
@@ -87,26 +104,20 @@ module Configurability
87
104
  self.log.debug "Splitting up config %p between %d objects with configurability." %
88
105
  [ config, self.configurable_objects.length ]
89
106
 
107
+ self.loaded_config = config
108
+
90
109
  self.configurable_objects.each do |obj|
91
- section = obj.config_key.to_sym
92
- self.log.debug "Configuring %p with the %p section of the config." %
93
- [ obj, section ]
94
-
95
- if config.respond_to?( section )
96
- self.log.debug " config has a %p method; using that" % [ section ]
97
- obj.configure( config.send(section) )
98
- elsif config.respond_to?( :[] )
99
- self.log.debug " config has a an index operator method; using that"
100
- obj.configure( config[section] || config[section.to_s] )
101
- else
102
- self.log.warn " don't know how to get the %p section of the config from %p" %
103
- [ section, config ]
104
- obj.configure( nil )
105
- end
110
+ self.install_config( config, obj )
106
111
  end
107
112
  end
108
113
 
109
114
 
115
+ ### If a configuration has been loaded (via {#configure_objects}), clear it.
116
+ def self::reset
117
+ self.loaded_config = nil
118
+ end
119
+
120
+
110
121
  ### Reset the global logger object to the default
111
122
  ### @return [void]
112
123
  def self::reset_logger
@@ -116,6 +127,25 @@ module Configurability
116
127
  end
117
128
 
118
129
 
130
+ ### Install the appropriate section of the +config+ into the given +object+.
131
+ def self::install_config( config, object )
132
+ section = object.config_key.to_sym
133
+ self.log.debug "Configuring %p with the %p section of the config." %
134
+ [ object, section ]
135
+
136
+ if config.respond_to?( section )
137
+ self.log.debug " config has a %p method; using that" % [ section ]
138
+ object.configure( config.send(section) )
139
+ elsif config.respond_to?( :[] )
140
+ self.log.debug " config has a an index operator method; using that"
141
+ object.configure( config[section] || config[section.to_s] )
142
+ else
143
+ self.log.warn " don't know how to get the %p section of the config from %p" %
144
+ [ section, config ]
145
+ object.configure( nil )
146
+ end
147
+ end
148
+
119
149
 
120
150
  #############################################################
121
151
  ### A P P E N D E D M E T H O D S
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby -wKU
2
+
3
+ require 'configurability'
4
+
5
+
6
+ ### Mixin that can be applied to classes to cause them to configure themselves
7
+ ### as soon as they are able to.
8
+ module Configurability::DeferredConfig
9
+
10
+ ### Extension hook: log when the mixin is used.
11
+ def self::extended( mod )
12
+ Configurability.log.debug "Adding deferred configuration hook to %p" % [ mod ]
13
+ super
14
+ end
15
+
16
+
17
+ ### Singleton method definition hook: configure the instance as soon as it
18
+ ### overrides the #configure method supplied by the Configurability mixin itself.
19
+ def singleton_method_added( sym )
20
+ super
21
+
22
+ if sym == :configure
23
+ config = Configurability.loaded_config
24
+ Configurability.log.debug "Propagating config to %p" % [ self ]
25
+ Configurability.install_config( config, self )
26
+ end
27
+ end
28
+
29
+ end # module Configurability::DeferredConfig
data/rake/hg.rb CHANGED
@@ -151,9 +151,10 @@ unless defined?( HG_DOTDIR )
151
151
  task :prep_release do
152
152
  tags = get_tags()
153
153
  rev = get_current_rev()
154
+ pkg_version_tag = "v#{PKG_VERSION}"
154
155
 
155
156
  # Look for a tag for the current release version, and if it exists abort
156
- if tags.include?( PKG_VERSION )
157
+ if tags.include?( pkg_version_tag )
157
158
  error "Version #{PKG_VERSION} already has a tag. Did you mean " +
158
159
  "to increment the version in #{VERSION_FILE}?"
159
160
  fail
@@ -164,8 +165,8 @@ unless defined?( HG_DOTDIR )
164
165
  run 'hg', 'sign'
165
166
 
166
167
  # Tag the current rev
167
- log "Tagging rev #{rev} as #{PKG_VERSION}"
168
- run 'hg', 'tag', PKG_VERSION
168
+ log "Tagging rev #{rev} as #{pkg_version_tag}"
169
+ run 'hg', 'tag', pkg_version_tag
169
170
 
170
171
  # Offer to push
171
172
  Rake::Task['hg:push'].invoke
@@ -229,6 +230,18 @@ unless defined?( HG_DOTDIR )
229
230
  end
230
231
 
231
232
 
233
+ desc "Update to tip"
234
+ task :update do
235
+ run 'hg', 'update'
236
+ end
237
+
238
+
239
+ desc "Clobber all changes (hg up -C)"
240
+ task :update_and_clobber do
241
+ run 'hg', 'update', '-C'
242
+ end
243
+
244
+
232
245
  desc "Check the current code in if tests pass"
233
246
  task :checkin => ['hg:pull', 'hg:newfiles', 'test', COMMIT_MSG_FILE] do
234
247
  targets = get_target_args()
data/rake/packaging.rb CHANGED
@@ -12,7 +12,7 @@ include Config
12
12
  ### Task: prerelease
13
13
  desc "Append the package build number to package versions"
14
14
  task :prerelease do
15
- GEMSPEC.version.version << ".pre.#{PKG_BUILD}"
15
+ GEMSPEC.version.version << "pre#{PKG_BUILD}"
16
16
  Rake::Task[:gem].clear
17
17
 
18
18
  Gem::PackageTask.new( GEMSPEC ) do |pkg|
data/rake/testing.rb CHANGED
@@ -47,6 +47,7 @@ begin
47
47
  ### Task: spec
48
48
  desc "Run specs"
49
49
  task :spec => 'spec:doc'
50
+ task :specs => :spec
50
51
 
51
52
  namespace :spec do
52
53
  desc "Run rspec every time there's a change to one of the files"
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ BEGIN {
4
+ require 'pathname'
5
+ basedir = Pathname.new( __FILE__ ).dirname.parent.parent
6
+
7
+ libdir = basedir + "lib"
8
+
9
+ $LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
10
+ $LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
11
+ }
12
+
13
+ require 'tempfile'
14
+ require 'logger'
15
+ require 'fileutils'
16
+ require 'rspec'
17
+
18
+ require 'spec/lib/helpers'
19
+
20
+ require 'configurability'
21
+ require 'configurability/deferredconfig'
22
+
23
+
24
+ #####################################################################
25
+ ### C O N T E X T S
26
+ #####################################################################
27
+ describe Configurability::DeferredConfig do
28
+
29
+ before( :all ) do
30
+ setup_logging( :fatal )
31
+ end
32
+
33
+ after( :each ) do
34
+ Configurability.configurable_objects.clear
35
+ Configurability.reset
36
+ end
37
+
38
+ it "calls Configurability.install_config with itself when a 'configure' method is defined" do
39
+ config = double( "config object", :testing => :testing_config )
40
+ Configurability.configure_objects( config )
41
+
42
+ a_class = Class.new do
43
+ extend Configurability::DeferredConfig
44
+ class << self; attr_accessor :config_object; end
45
+ def self::config_key; "testing"; end
46
+ def self::configure( config )
47
+ self.config_object = config
48
+ end
49
+ end
50
+
51
+ a_class.config_object.should == :testing_config
52
+ end
53
+
54
+ end
55
+
56
+ # vim: set nosta noet ts=4 sw=4:
@@ -15,6 +15,7 @@ require 'rspec'
15
15
  require 'spec/lib/helpers'
16
16
 
17
17
  require 'configurability'
18
+ require 'configurability/config'
18
19
 
19
20
 
20
21
  #####################################################################
@@ -30,6 +31,7 @@ describe Configurability do
30
31
 
31
32
  after( :each ) do
32
33
  Configurability.configurable_objects.clear
34
+ Configurability.reset
33
35
  end
34
36
 
35
37
 
@@ -49,7 +51,7 @@ describe Configurability do
49
51
  config_key :testconfig
50
52
  end
51
53
 
52
- config = stub( "configuration object" )
54
+ config = mock( "configuration object" )
53
55
  config.should_receive( :respond_to? ).with( :testconfig ).and_return( true )
54
56
  config.should_receive( :testconfig ).and_return( :a_config_section )
55
57
 
@@ -63,7 +65,7 @@ describe Configurability do
63
65
  config_key :testconfig
64
66
  end
65
67
 
66
- config = stub( "configuration object" )
68
+ config = mock( "configuration object" )
67
69
  config.should_receive( :respond_to? ).with( :testconfig ).and_return( true )
68
70
  config.should_receive( :testconfig ).and_return( :a_config_section )
69
71
 
@@ -78,7 +80,7 @@ describe Configurability do
78
80
  config_key :testconfig
79
81
  end
80
82
 
81
- config = stub( "configuration object" )
83
+ config = mock( "configuration object" )
82
84
  config.should_receive( :respond_to? ).with( :testconfig ).and_return( false )
83
85
  config.should_receive( :respond_to? ).with( :[] ).and_return( true )
84
86
  config.should_receive( :[] ).with( :testconfig ).and_return( :a_config_section )
@@ -94,7 +96,7 @@ describe Configurability do
94
96
  config_key :testconfig
95
97
  end
96
98
 
97
- config = stub( "configuration object" )
99
+ config = mock( "configuration object" )
98
100
  config.should_receive( :respond_to? ).with( :testconfig ).and_return( false )
99
101
  config.should_receive( :respond_to? ).with( :[] ).and_return( false )
100
102
 
@@ -109,7 +111,7 @@ describe Configurability do
109
111
  config_key :testconfig
110
112
  end
111
113
 
112
- config = stub( "configuration object" )
114
+ config = mock( "configuration object" )
113
115
  config.should_receive( :respond_to? ).with( :testconfig ).and_return( false )
114
116
  config.should_receive( :respond_to? ).with( :[] ).and_return( true )
115
117
  config.should_receive( :[] ).with( :testconfig ).and_return( nil )
@@ -125,7 +127,7 @@ describe Configurability do
125
127
  object.extend( Configurability )
126
128
  object.config_key = :testobjconfig
127
129
 
128
- config = stub( "configuration object" )
130
+ config = mock( "configuration object" )
129
131
  config.should_receive( :respond_to? ).with( :testobjconfig ).and_return( true )
130
132
  config.should_receive( :testobjconfig ).and_return( :a_config_section )
131
133
 
@@ -140,7 +142,7 @@ describe Configurability do
140
142
  def object.name; "testobjconfig"; end
141
143
  object.extend( Configurability )
142
144
 
143
- config = stub( "configuration object" )
145
+ config = mock( "configuration object" )
144
146
  config.should_receive( :respond_to? ).with( :testobjconfig ).and_return( true )
145
147
  config.should_receive( :testobjconfig ).and_return( :a_config_section )
146
148
 
@@ -154,7 +156,7 @@ describe Configurability do
154
156
  def object.name; "Test Obj-Config"; end
155
157
  object.extend( Configurability )
156
158
 
157
- config = stub( "configuration object" )
159
+ config = mock( "configuration object" )
158
160
  config.should_receive( :respond_to? ).with( :test_obj_config ).and_return( true )
159
161
  config.should_receive( :test_obj_config ).and_return( :a_config_section )
160
162
 
@@ -168,7 +170,7 @@ describe Configurability do
168
170
  object = Object.new
169
171
  object.extend( Configurability )
170
172
 
171
- config = stub( "configuration object" )
173
+ config = mock( "configuration object" )
172
174
  config.should_receive( :respond_to? ).with( :object ).and_return( true )
173
175
  config.should_receive( :object ).and_return( :a_config_section )
174
176
 
@@ -184,7 +186,7 @@ describe Configurability do
184
186
  end
185
187
  end
186
188
 
187
- config = stub( "configuration object" )
189
+ config = mock( "configuration object" )
188
190
  config.should_receive( :respond_to? ).with( :dbobject ).and_return( true )
189
191
  config.should_receive( :dbobject ).and_return( :a_config_section )
190
192
 
@@ -199,7 +201,7 @@ describe Configurability do
199
201
  object = objectclass.new
200
202
  object.extend( Configurability )
201
203
 
202
- config = stub( "configuration object" )
204
+ config = mock( "configuration object" )
203
205
  config.should_receive( :respond_to? ).with( :anonymous ).and_return( true )
204
206
  config.should_receive( :anonymous ).and_return( :a_config_section )
205
207
 
@@ -208,6 +210,51 @@ describe Configurability do
208
210
  Configurability.configure_objects( config )
209
211
  end
210
212
 
213
+
214
+ context "after installation of a config object" do
215
+
216
+ before( :each ) do
217
+ @config = Configurability::Config.new
218
+ @config.postconfig = :yes
219
+ Configurability.configure_objects( @config )
220
+ end
221
+
222
+ after( :each ) do
223
+ Configurability.reset
224
+ end
225
+
226
+
227
+ it "should know what the currently-installed configuration is" do
228
+ Configurability.loaded_config.should equal( @config )
229
+ end
230
+
231
+ it "propagates the installed configuration to any objects which add Configurability" do
232
+ objectclass = Class.new do
233
+ def initialize; @config = nil; end
234
+ attr_reader :config
235
+ def name; "postconfig"; end
236
+ def configure( config ); @config = config; end
237
+ end
238
+
239
+ object = objectclass.new
240
+ object.extend( Configurability )
241
+ object.config.should == :yes
242
+ end
243
+
244
+ it "defers configuration until after an object has defined a #configure method if " +
245
+ "it adds Configurability before declaring one" do
246
+ objectclass = Class.new do
247
+ extend Configurability
248
+ config_key :postconfig
249
+ def self::configure( config ); @config = config; end
250
+ class << self; attr_reader :config; end
251
+ end
252
+
253
+ objectclass.config.should == :yes
254
+ end
255
+
256
+ end
257
+
211
258
  end
212
259
 
213
260
  # vim: set nosta noet ts=4 sw=4:
data/spec/lib/helpers.rb CHANGED
@@ -10,6 +10,8 @@ BEGIN {
10
10
  $LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
11
11
  }
12
12
 
13
+ require 'rspec'
14
+
13
15
  require 'logger'
14
16
  require 'erb'
15
17
  require 'yaml'
@@ -133,5 +135,10 @@ module Configurability::SpecHelpers
133
135
  end
134
136
 
135
137
 
138
+ RSpec.configure do |config|
139
+ config.mock_with( :rspec )
140
+ config.include( Configurability::SpecHelpers )
141
+ end
142
+
136
143
  # vim: set nosta noet ts=4 sw=4:
137
144
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: configurability
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 2
10
- version: 1.0.2
9
+ - 3
10
+ version: 1.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michael Granger
@@ -35,7 +35,7 @@ cert_chain:
35
35
  cmlhXe46pZNJgWKbxZah85jIjx95hR8vOI+NAM5iH9kOqK13DrxacTKPhqj5PjwF
36
36
  -----END CERTIFICATE-----
37
37
 
38
- date: 2010-10-29 00:00:00 -07:00
38
+ date: 2010-11-29 00:00:00 -08:00
39
39
  default_executable:
40
40
  dependencies: []
41
41
 
@@ -61,10 +61,12 @@ files:
61
61
  - README.md
62
62
  - LICENSE
63
63
  - spec/configurability/config_spec.rb
64
+ - spec/configurability/deferredconfig_spec.rb
64
65
  - spec/configurability_spec.rb
65
66
  - spec/lib/helpers.rb
66
67
  - lib/configurability/behavior.rb
67
68
  - lib/configurability/config.rb
69
+ - lib/configurability/deferredconfig.rb
68
70
  - lib/configurability/logformatter.rb
69
71
  - lib/configurability.rb
70
72
  - rake/191_compat.rb
@@ -81,8 +83,8 @@ files:
81
83
  - rake/verifytask.rb
82
84
  has_rdoc: true
83
85
  homepage: http://bitbucket.org/ged/configurability
84
- licenses: []
85
-
86
+ licenses:
87
+ - BSD
86
88
  post_install_message:
87
89
  rdoc_options:
88
90
  - --tab-width=4
@@ -98,10 +100,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
98
100
  requirements:
99
101
  - - ">="
100
102
  - !ruby/object:Gem::Version
101
- hash: 3
103
+ hash: 57
102
104
  segments:
103
- - 0
104
- version: "0"
105
+ - 1
106
+ - 8
107
+ - 7
108
+ version: 1.8.7
105
109
  required_rubygems_version: !ruby/object:Gem::Requirement
106
110
  none: false
107
111
  requirements:
@@ -120,5 +124,6 @@ specification_version: 3
120
124
  summary: A configurability mixin for Ruby
121
125
  test_files:
122
126
  - spec/configurability/config_spec.rb
127
+ - spec/configurability/deferredconfig_spec.rb
123
128
  - spec/configurability_spec.rb
124
129
  - spec/lib/helpers.rb
metadata.gz.sig CHANGED
Binary file