configurability 3.0.0.pre20161130174408 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ea686c0c69488500b5a99766adb8d47a71415a7d
4
- data.tar.gz: 22c502b78fe24a6c29c0b7e2f24a556cf15bb4a1
3
+ metadata.gz: e5b8b9694625491f3e546adeaccceb6c954d5ec3
4
+ data.tar.gz: b9d69f613e03aeb99cec8c0a4d38f7dc5ba85d15
5
5
  SHA512:
6
- metadata.gz: fa983d829f75746d680966e050c1f7ef76e826439c7892deca3715397f75984cfce0017cc68419d9155fdfee13dad38ad242e096319704383c3600ebd9d8e78f
7
- data.tar.gz: e285d94730abc2a40cbc7200136c3bdaf22d359f9185f47072f584576aeb5f094a4b5b1f4449166f804f9a5a2832eb5a17ead825d05ebad56d08d01cf081409d
6
+ metadata.gz: e2cf44e75c61f75d701d72733a417e837d179b7c948cac985107ba212cf6df689f1fc62b6cb96d2e8c0e41f32a6c3324006970903254f1423a9cd7d1a7dc746e
7
+ data.tar.gz: 11fff4eb97457b4bd3ee7c0dfc4a38c95c09b403e5cefd4822692c03ef1ec99239061165eef28ff8aea8b5f3eb523420577a58fcc09e81bc468a1fdb52e67481
checksums.yaml.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ Bv�;ب<��C�㇕��|�v�l���>rH2˖C�@�\4�x�[�"��@4��'�m63�ƚ<���\f�+ CWa��`���&E�+$R��#
2
+ ��,l��'�Z����@U��̩4��l9J�[�Õ�&��Jʐ�E߁�Y��eR��ej�2C���S��Z����G�<�|B�d�3f^���vo���.D������''�����lk �T.t��i>�w�J����J�˽�C��O��s�4+���W0����}�1զ[l�؇{|�a�0?��%�Q��%α ���Rj���-2���@3�ꐨg����/X��q��Ϳo뙶/N���>���j˓}�b�5��l3��<��L9�o,�so�>7/�a��N.
data.tar.gz.sig ADDED
Binary file
data/History.md CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  Enhancement:
4
4
 
5
- - Add hierarchical config keys.
5
+ - Add hierarchical config keys
6
+ - Add a DSL for setting up settings and defaults
7
+ - Add a better default #configure method
6
8
 
7
9
 
8
10
  == v2.2.2 [2016-09-28] Michael Granger <ged@FaerieMUD.org>
data/LICENSE ADDED
@@ -0,0 +1,27 @@
1
+ Copyright (c) 2010-2016 Michael Granger and Mahlon E. Smith
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+
10
+ * Redistributions in binary form must reproduce the above copyright notice,
11
+ this list of conditions and the following disclaimer in the documentation
12
+ and/or other materials provided with the distribution.
13
+
14
+ * Neither the name of the author/s, nor the names of the project's
15
+ contributors may be used to endorse or promote products derived from this
16
+ software without specific prior written permission.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
22
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/Manifest.txt CHANGED
@@ -7,6 +7,7 @@ Rakefile
7
7
  bin/configurability
8
8
  examples/basicconfig.rb
9
9
  examples/config.yml
10
+ examples/readme.rb
10
11
  lib/configurability.rb
11
12
  lib/configurability/behavior.rb
12
13
  lib/configurability/config.rb
data/README.md CHANGED
@@ -16,92 +16,180 @@ github
16
16
 
17
17
  ## Description
18
18
 
19
- Configurability is a unified, unintrusive, assume-nothing configuration system
19
+ Configurability is a unified, non-intrusive, assume-nothing configuration system
20
20
  for Ruby. It lets you keep the configuration for multiple objects in a single
21
21
  config file, load the file when it's convenient for you, and distribute the
22
22
  configuration when you're ready, sending it everywhere it needs to go with a
23
23
  single action.
24
24
 
25
25
 
26
-
27
26
  ## Installation
28
27
 
29
28
  gem install configurability
30
29
 
31
30
 
31
+ ## Example
32
+
33
+ # user.rb
34
+ require 'configurability'
35
+
36
+ class User
37
+ extend Configurability
38
+
39
+ configurability( :users ) do
40
+ setting :min_password_length, default: 6
41
+ end
42
+
43
+ end
44
+
45
+
46
+ # config.yml
47
+ users:
48
+ min_password_length: 12
49
+
50
+ In pry:
51
+
52
+ [1] pry(main)> require 'user'
53
+ => true
54
+ [2] pry(main)> User.min_password_length
55
+ => 6
56
+ [3] pry(main)> config = Configurability::Config.load( "config.yml" )
57
+ => #<Configurability::Config:0x7fd99a0f635816 loaded from config.yml ...>
58
+ [4] pry(main)> config.install
59
+ => [Loggability, User]
60
+ [5] pry(main)> User.min_password_length
61
+ => 12
62
+
63
+
32
64
  ## Usage
33
65
 
34
- To add configurability to a class, just require the library and extend
35
- the class:
66
+ To add Configurability to your module or class, just `extend` it and declare
67
+ some settings:
36
68
 
37
69
  require 'configurability'
38
- class User
70
+ class Database
39
71
  extend Configurability
72
+
73
+ configurability( :db ) do
74
+ setting :url, default: 'sqlite:/'
75
+ setting :user
76
+ setting :password
77
+ end
40
78
  end
41
79
 
42
- Or, add it to a instance:
80
+ This sets up the class to use the `db` config key, and adds attributes for the
81
+ three subkey settings under it (with getters and setters) to the class. It also
82
+ adds a `configure` class method that will set whichever of the settings are
83
+ passed to it, defaulting the `url` to the provided value if it's not given.
84
+
85
+ If your config file (e.g., `config.yml`) looks like this:
86
+
87
+ --
88
+ db:
89
+ url: 'postgres:/acme'
90
+ user: tim
91
+ password: "pXVvVY,YjWNRRi[yPWx4"
92
+
93
+ You can configure the `Database` class (and all other objects extended with
94
+ Configurability) with it like so:
95
+
96
+ require 'configurability/config'
97
+
98
+ config = Configurability::Config.load( 'config.yml' )
99
+ Configurability.configure_objects( config )
100
+
101
+ After this happens you can access the configuration values like this:
102
+
103
+ Database.url
104
+ # => "postgres:/acme"
105
+ Database.user
106
+ # => "tim"
107
+ Database.password
108
+ # => "pXVvVY,YjWNRRi[yPWx4"
109
+
110
+
111
+ ### More Details
112
+
113
+ Configurability is implemented using `Module#extend`, so there's very little
114
+ magic going on. Every object (including Class and Module objects) that is
115
+ extended with Configurability is registered in an Array of objects that will be
116
+ configured when the config is loaded.
117
+
118
+ You extend a Class, of course, as in the above example:
119
+
120
+ class MyClass
121
+ extend Configurabtility
122
+ end
123
+
124
+ But you can also add it to individual instances of objects to configure them
125
+ separately:
43
126
 
44
127
  user = User.new
45
128
  user.extend( Configurability )
46
129
 
47
- Later, when you've loaded the configuration, can can call
130
+ When you call:
48
131
 
49
132
  Configurability.configure_objects( config )
50
133
 
51
- and the `config` will be spliced up and sent to all the objects that have
52
- been extended with it. `Configurability` expects the configuration to be
53
- broken up into a number of sections, each of which is accessible via either
54
- a method with the _section name_ or the index operator (`#[]`) that takes the
55
- _section name_ as a `Symbol` or a `String`:
134
+ the specified `config` will be spliced up and sent to all the objects that have
135
+ been registered. `Configurability` expects the configuration to be broken
136
+ up into a number of sections, each of which is accessible via either a method
137
+ with the _section name_ or the index operator (`#[]`) that takes the _section
138
+ name_ as a `Symbol` or a `String`:
56
139
 
57
140
  config.section_name
58
141
  config[:section_name]
59
142
  config['section_name']
60
143
 
61
- The section name is based on an object's _config key_, which is the name of
62
- the object that is being extended with all non-word characters converted into
63
- underscores (`_`) by default. It will also have any leading Ruby-style
144
+ The section name is based on an object's _config key_, which is the argument
145
+ you specify when declaring your settings. If you don't provide one, it defaults
146
+ to the name of the object that is being extended with all non-word characters
147
+ converted into underscores (`_`). It will also have any leading Ruby-style
64
148
  namespaces stripped, e.g.,
65
149
 
66
- MyClass -> :myclass
67
- Acme::User -> :user
68
- "J. Random Hacker" -> :j_random_hacker
150
+ MyClass -> :myclass
151
+ Acme::User -> :user
152
+ "J. Random Hacker" -> :j_random_hacker
69
153
 
70
154
  If the object responds to the `#name` method, then the return value of that
71
155
  method is used to derive the name. If it doesn't have a `#name` method, the
72
156
  name of its `Class` will be used instead. If its class is anonymous, then
73
157
  the object's config key will be `:anonymous`.
74
158
 
75
- When the configuration is loaded, an instance variable called `@config` is set
76
- to the appropriate section of the config object for each object that has
77
- been extended with Configurability.
159
+ When the configuration is loaded, any attribute writers that correspond with
160
+ keys of the config will be called with the configured values, and an instance
161
+ variable called `@config` is set to the appropriate section of the config.
78
162
 
79
163
  As you add more objects to your configuration, it may be useful to group
80
164
  related sections together. You can specify that your object's configuration
81
- is part of a group by prepending the name of the group to your config key
82
- separated by a double underscore (`__`)
165
+ is part of a group by specifying a config key with either a dot if it's a String or a double underscore if it's a Symbol. E.g.,
166
+
167
+ # Read from the `db` subsection of `myapp`
168
+ configurability( 'myapp.db' )
169
+
170
+ # Same thing, but with a symbol:
171
+ configurability( :myapp__db )
83
172
 
84
173
 
85
174
  ## Customization
86
175
 
87
- The default behavior above is just provided as a reasonable default; it is
88
- expected that you'll want to customize at least one or two things about
89
- how configuration is handled in your objects.
176
+ The default behavior above is just provided as a reasonable default; you may
177
+ want to customize one or two things about how configuration is handled in your
178
+ objects.
90
179
 
91
180
 
92
181
  ### Setting a Custom Config Key
93
182
 
94
- The first thing you might want to do is change the config section that
95
- corresponds to your object. You can do that by declaring a different
96
- config key, either using a declarative method:
183
+ If you want to customize the config key without calling `configurability` you
184
+ can do that by declaring it with the `config_key` method:
97
185
 
98
186
  class OutputFormatter
99
187
  extend Configurability
100
188
  config_key :format
101
189
  end
102
190
 
103
- or by overriding the `#config_key` method and returning the desired value
104
- as a Symbol:
191
+ or by overriding the `#config_key` method youtself and returning the desired
192
+ value as a Symbol:
105
193
 
106
194
  class User
107
195
  extend Configurability
@@ -121,9 +209,9 @@ a `#configure` method that takes the config section as an argument:
121
209
 
122
210
  config_key :webserver
123
211
 
124
- def self::configure( configsection )
125
- @default_bind_addr = configsection[:host]
126
- @default_port = configsection[:port]
212
+ def self::configure( config )
213
+ @default_bind_addr = config[:host]
214
+ @default_port = config[:port]
127
215
  end
128
216
  end
129
217
 
@@ -142,28 +230,28 @@ Configurability, but it's also useful on its own.
142
230
  Here's a quick example to demonstrate some of its features. Suppose you have a
143
231
  config file that looks like this:
144
232
 
145
- ---
146
- database:
147
- development:
233
+ ---
234
+ database:
235
+ development:
148
236
  adapter: sqlite3
149
237
  database: db/dev.db
150
238
  pool: 5
151
239
  timeout: 5000
152
- testing:
240
+ testing:
153
241
  adapter: sqlite3
154
242
  database: db/testing.db
155
243
  pool: 2
156
244
  timeout: 5000
157
- production:
245
+ production:
158
246
  adapter: postgres
159
247
  database: fixedassets
160
248
  pool: 25
161
249
  timeout: 50
162
- ldap:
250
+ ldap:
163
251
  uri: ldap://ldap.acme.com/dc=acme,dc=com
164
252
  bind_dn: cn=web,dc=acme,dc=com
165
253
  bind_pass: Mut@ge.Mix@ge
166
- branding:
254
+ branding:
167
255
  header: "#333"
168
256
  title: "#dedede"
169
257
  anchor: "#9fc8d4"
@@ -172,7 +260,7 @@ You can load this config like so:
172
260
 
173
261
  require 'configurability/config'
174
262
  config = Configurability::Config.load( 'examples/config.yml' )
175
- # => #<Configurability::Config:0x1018a7c7016 loaded from
263
+ # => #<Configurability::Config:0x1018a7c7016 loaded from
176
264
  examples/config.yml; 3 sections: database, ldap, branding>
177
265
 
178
266
  And then access it using struct-like methods:
@@ -206,12 +294,17 @@ both:
206
294
  config['branding'][:anchor]
207
295
  # => "#9fc8d4"
208
296
 
209
- You can install it via the Configurability interface:
297
+ You can install it (i.e., configure your objects) via the Configurability
298
+ interface:
210
299
 
211
300
  config.install
212
301
 
213
- Check to see if the file it was loaded from has changed since you
214
- loaded it:
302
+ If you change the values in the config object, they won't propagate
303
+ automatically; you'll need to call `#install` on it again to send the changes to
304
+ the objects being configured.
305
+
306
+ You can check to see if the file the config was loaded from has changed since
307
+ you loaded it:
215
308
 
216
309
  config.changed?
217
310
  # => false
@@ -222,7 +315,7 @@ loaded it:
222
315
  # => true
223
316
 
224
317
  If it has changed (or even if it hasn't), you can reload it, which
225
- automatically re-installs it via the Configurability interface:
318
+ automatically re-installs it via the Configurability interface if it has:
226
319
 
227
320
  config.reload
228
321
 
@@ -235,36 +328,43 @@ write the modified config back out to the same file:
235
328
  then dump it to a YAML string:
236
329
 
237
330
  config.dump
238
- # => "--- \ndatabase: \n development: \n adapter: sqlite3\n
239
- database: db/dev.db\n pool: 5\n timeout: 5000\n testing: \n
240
- adapter: mysql\n database: t_fixedassets\n pool: 2\n timeout:
241
- 5000\n production: \n adapter: postgres\n database:
242
- fixedassets\n pool: 25\n timeout: 50\nldap: \n uri:
243
- ldap://ldap.acme.com/dc=acme,dc=com\n bind_dn:
244
- cn=web,dc=acme,dc=com\n bind_pass: Mut@ge.Mix@ge\nbranding: \n
245
- header: \"#333\"\n title: \"#dedede\"\n anchor: \"#9fc8d4\"\n"
331
+ # => "--- \ndatabase: \n development: \n adapter: sqlite3\n
332
+ database: db/dev.db\n pool: 5\n timeout: 5000\n testing: \n
333
+ adapter: mysql\n database: t_fixedassets\n pool: 2\n timeout:
334
+ 5000\n production: \n adapter: postgres\n database:
335
+ fixedassets\n pool: 25\n timeout: 50\nldap: \n uri:
336
+ ldap://ldap.acme.com/dc=acme,dc=com\n bind_dn:
337
+ cn=web,dc=acme,dc=com\n bind_pass: Mut@ge.Mix@ge\nbranding: \n
338
+ header: \"#333\"\n title: \"#dedede\"\n anchor: \"#9fc8d4\"\n"
246
339
 
247
340
  or write it back to the file it was loaded from:
248
341
 
249
- config.write
342
+ config.write
343
+
344
+ Note that this is just using `YAML.dump`, so any comments, ordering, or other
345
+ nice formatting you have in your config file will be clobbered if you rewrite
346
+ it.
250
347
 
251
348
 
252
349
  ## Configuration Defaults
253
350
 
254
351
  It's a good idea to provide a set of reasonable defaults for any configured
255
- object. Configurability provides a `defaults` method that will look for a constant
256
- called either `DEFAULT_CONFIG` or `CONFIG_DEFAULTS` on each object extended with
257
- Configurability, and will return a dup of the value of this constant if it does.
352
+ object. The defaults for all settings are added to extended Classes and Modules
353
+ as a constant named `CONFIG_DEFAULTS`. You can, of course set this constant
354
+ yourself as well.
258
355
 
259
- You can also override `defaults` yourself if you wish to provide them via something
260
- other than a constant.
356
+ Configurability provides a `defaults` method that will return the hash of
357
+ settings and their default values from the `CONFIG_DEFAULTS` constant. You can
358
+ also override the `defaults` method yourself (and super to the original) if you
359
+ wish to do something different.
261
360
 
262
361
  There are also a couple of useful functions built on top of this method:
263
362
 
264
363
  gather_defaults
265
- : You can fetch a Hash of the default config values of all objects that have been extended
266
- with Configurability by calling `Configurabilty.gather_defaults`. You can also pass an
267
- object that responds to `#merge!` to the method to merge the defaults into an existing
364
+ : You can fetch a Hash of the default config values of all objects that have
365
+ been extended with Configurability by calling
366
+ `Configurabilty.gather_defaults`. You can also pass an object that responds
367
+ to `#merge!` to the method to merge the defaults into an existing
268
368
  config.
269
369
 
270
370
  default_config
@@ -276,9 +376,9 @@ default_config
276
376
  ## Development
277
377
 
278
378
  You can submit bug reports, suggestions, clone it with Mercurial, and
279
- read more about future plans at
280
- {the project page}[http://bitbucket.org/ged/configurability]. If you
281
- prefer Git, there is also a
379
+ read more about future plans at
380
+ {the project page}[http://bitbucket.org/ged/configurability]. If you
381
+ prefer Git, there is also a
282
382
  {Github mirror}[https://github.com/ged/configurability].
283
383
 
284
384
  After checking out the source, run:
data/examples/config.yml CHANGED
@@ -23,3 +23,5 @@ branding:
23
23
  header: "#333"
24
24
  title: "#dedede"
25
25
  anchor: "#9fc8d4"
26
+ users:
27
+ min_password_length: 12
@@ -0,0 +1,14 @@
1
+ # -*- ruby -*-
2
+ #encoding: utf-8
3
+
4
+ require 'configurability'
5
+
6
+ class User
7
+ extend Configurability
8
+
9
+ configurability( :users ) do
10
+ setting :min_password_length, default: 6
11
+ end
12
+ end
13
+
14
+
@@ -3,12 +3,7 @@
3
3
  require 'loggability'
4
4
  require 'yaml'
5
5
 
6
- # A configuration mixin for Ruby classes.
7
- #
8
- # == Author/s
9
- #
10
- # * Michael Granger <ged@FaerieMUD.org>
11
- #
6
+ # A unified, unintrusive, assume-nothing configuration system for Ruby
12
7
  module Configurability
13
8
  extend Loggability
14
9
 
@@ -21,7 +16,7 @@ module Configurability
21
16
  VERSION = '3.0.0'
22
17
 
23
18
  # Version-control revision constant
24
- REVISION = %q$Revision: 5d62053ab7f8 $
19
+ REVISION = %q$Revision: f363eb5811b9 $
25
20
 
26
21
  require 'configurability/deferred_config'
27
22
 
@@ -35,10 +30,6 @@ module Configurability
35
30
  ### The loaded config (if there is one)
36
31
  @loaded_config = nil
37
32
 
38
- ### The hash of configuration calls that have already taken place -- the keys are
39
- ### Method objects for the configure methods of the configured objects, and the values
40
- ### are the config section it was called with
41
- @configured = Hash.new( false )
42
33
 
43
34
  class << self
44
35
 
@@ -48,9 +39,6 @@ module Configurability
48
39
  # the loaded configuration (after ::configure_objects has been called at least once)
49
40
  attr_accessor :loaded_config
50
41
 
51
- # the hash of configure methods => config sections which have already been installed
52
- attr_reader :configured
53
-
54
42
  end
55
43
 
56
44
 
@@ -121,7 +109,6 @@ module Configurability
121
109
  ### If a configuration has been loaded (via {#configure_objects}), clear it.
122
110
  def self::reset
123
111
  self.loaded_config = nil
124
- self.configured.clear
125
112
  end
126
113
 
127
114
 
@@ -205,6 +192,12 @@ module Configurability
205
192
  end
206
193
 
207
194
 
195
+ ### Return the specified +key+ normalized into a valid Symbol config key.
196
+ def self::normalize_config_key( key )
197
+ return key.to_s.gsub( /\./, '__' ).to_sym
198
+ end
199
+
200
+
208
201
  ### Gather the default configuration in a Configurability::Config object and return it.
209
202
  def self::default_config
210
203
  return self.gather_defaults( Configurability::Config.new )
@@ -230,7 +223,7 @@ module Configurability
230
223
  ### Set the config key of the object.
231
224
  def config_key=( sym )
232
225
  Configurability.configurable_objects |= [ self ]
233
- @config_key = normalize_config_key( sym )
226
+ @config_key = Configurability.normalize_config_key( sym )
234
227
  end
235
228
 
236
229
 
@@ -279,12 +272,6 @@ module Configurability
279
272
  end
280
273
 
281
274
 
282
- ### Return the specified +key+ normalized into a valid Symbol config key.
283
- def normalize_config_key( key )
284
- return key.to_s.gsub( /\./, '__' ).to_sym
285
- end
286
-
287
-
288
275
  #
289
276
  # :section: Configuration settings block
290
277
  #
@@ -322,7 +309,7 @@ module Configurability
322
309
  ### The default implementation of the method called by ::gather_defaults when
323
310
  ### gathering configuration defaults. This method expects either a
324
311
  ### +DEFAULT_CONFIG+ or a +CONFIG_DEFAULTS+ constant to contain the configuration
325
- ### defaults, and will just return the +fallback+ value if neither exists.
312
+ ### defaults, and will just return the +fallback+ value if neither exists.
326
313
  def defaults( fallback=nil )
327
314
 
328
315
  return fallback unless respond_to?( :const_defined? )
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.0.0.pre20161130174408
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -36,7 +36,7 @@ cert_chain:
36
36
  w8aNA5re5+Rt/Vvjxj5AcEnZnZiz5x959NaddQocX32Z1unHw44pzRNUur1GInfW
37
37
  p4vpx2kUSFSAGjtCbDGTNV2AH8w9OU4xEmNz8c5lyoA=
38
38
  -----END CERTIFICATE-----
39
- date: 2016-12-01 00:00:00.000000000 Z
39
+ date: 2016-12-28 00:00:00.000000000 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: loggability
@@ -151,7 +151,7 @@ dependencies:
151
151
  - !ruby/object:Gem::Version
152
152
  version: '3.15'
153
153
  description: |-
154
- Configurability is a unified, unintrusive, assume-nothing configuration system
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
156
156
  config file, load the file when it's convenient for you, and distribute the
157
157
  configuration when you're ready, sending it everywhere it needs to go with a
@@ -169,12 +169,14 @@ extra_rdoc_files:
169
169
  files:
170
170
  - ChangeLog
171
171
  - History.md
172
+ - LICENSE
172
173
  - Manifest.txt
173
174
  - README.md
174
175
  - Rakefile
175
176
  - bin/configurability
176
177
  - examples/basicconfig.rb
177
178
  - examples/config.yml
179
+ - examples/readme.rb
178
180
  - lib/configurability.rb
179
181
  - lib/configurability/behavior.rb
180
182
  - lib/configurability/config.rb
@@ -201,14 +203,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
201
203
  version: 2.2.0
202
204
  required_rubygems_version: !ruby/object:Gem::Requirement
203
205
  requirements:
204
- - - ">"
206
+ - - ">="
205
207
  - !ruby/object:Gem::Version
206
- version: 1.3.1
208
+ version: '0'
207
209
  requirements: []
208
210
  rubyforge_project:
209
211
  rubygems_version: 2.6.8
210
212
  signing_key:
211
213
  specification_version: 4
212
- summary: Configurability is a unified, unintrusive, assume-nothing configuration system
213
- for Ruby
214
+ summary: Configurability is a unified, non-intrusive, assume-nothing configuration
215
+ system for Ruby
214
216
  test_files: []
metadata.gz.sig ADDED
Binary file