configurability 1.0.2 → 1.0.3

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.
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