jeckyl 0.3.7 → 0.4.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 +8 -8
- data/Bugs.rdoc +2 -1
- data/Gemfile +1 -4
- data/History.txt +13 -0
- data/README.md +113 -22
- data/bin/jeckyl +14 -7
- data/lib/jeckyl.rb +8 -13
- data/lib/jeckyl/version.rb +8 -9
- data/spec/check_config_spec.rb +15 -15
- data/spec/jeckyl_spec.rb +5 -5
- data/spec/spec_helper.rb +5 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZWFjY2JkYjIxZWQwMjRiMjM5MzlhZmQxOTk3NzJkZTlmN2ZjZTQzNg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ODBkN2VmMmE1Y2QwOTFiOTM4NzYzMWI2YTc1NzhkMjM2ZTE5YzU4MA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MmQ4ZDFmODUxYmM2MGJkMWVhYmE1NThkNWMzM2I4MjI1MjE1MWNhNmM2MTA5
|
10
|
+
MWFiMDgzMGNmNjQ2OWEyNDU5NDcxNjYxNWRlMzRjMDZiZTIyZWRiYWU1NDRh
|
11
|
+
Y2ZjYjZmNWVkODMxODdhNTlkNmFiNWIwOGQ5OWU3MjA2YjBkNzU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZmQzNjNkNGMxMjJjZjA5NmQ4NDdmZmM4NzM1OWU0YzlkY2NkNjRiNzRkODdj
|
14
|
+
ZWI3YzYwNWY3YzdmNTY5OTdkMGUzYjI4NWE1MDE5ZTQ1OTg0MjRmY2U1N2Ni
|
15
|
+
NWY0MjJjYTY2YzM2NmY0MzBjNWYzZjJkZDUwYWEyYzI4YTdkOGE=
|
data/Bugs.rdoc
CHANGED
data/Gemfile
CHANGED
data/History.txt
CHANGED
@@ -4,6 +4,19 @@
|
|
4
4
|
|
5
5
|
== History
|
6
6
|
|
7
|
+
[jeckyl-0.4.0 01-Oct-2014]
|
8
|
+
|
9
|
+
General tidy up of gem (README, rspec tests etc) to bring things up to date.
|
10
|
+
|
11
|
+
[jeckyl-0.3.9 27-Jun-2014]
|
12
|
+
|
13
|
+
Fix #to_s to return a string and not output!
|
14
|
+
|
15
|
+
[jeckyl-0.3.8 24-Jun-2014]
|
16
|
+
|
17
|
+
Added compound names to klass action for 'jeckyl' command, used to generate class
|
18
|
+
files
|
19
|
+
|
7
20
|
[jeckyl-0.3.7 19-Sep-2013]
|
8
21
|
|
9
22
|
Corrected some minor yard issues
|
data/README.md
CHANGED
@@ -1,12 +1,17 @@
|
|
1
1
|
#JECKYL
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
on the
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
Jeckyl is a versatile configuration file manager. It provides a simple way of defining
|
4
|
+
and checking configuration parameters (including defaults) that can then be written as ruby in a config file.
|
5
|
+
It can also be used to add/override parameters from the command line (using optparse) or
|
6
|
+
even on the fly through an API. It comes with a handy utility that can generate a default
|
7
|
+
config file, with comments, from the defined config class and check existing config
|
8
|
+
files. It even creates a markdown file from the config class to make documentation easier.
|
9
|
+
|
10
|
+
Jeckyl can be used for simple parameters or complex structures with multiple calls. It provides
|
11
|
+
a single place to define and check all inputs so that you don't have to include any parameter
|
12
|
+
checking anywhere else in your code. Classes can be inherited to add further parameters, and
|
13
|
+
the config file generated by the jeckyl command is conveniently divided to reflect this. Config
|
14
|
+
files can also be merged so that multiple config files can be used (e.g. local/per-user/system).
|
10
15
|
|
11
16
|
**GitHub:** [https://github.com/osburn-sharp/jeckyl](https://github.com/osburn-sharp/jeckyl)
|
12
17
|
|
@@ -22,11 +27,10 @@ Jeckyl comes as a gem. It can be installed in the usual way:
|
|
22
27
|
|
23
28
|
gem install jeckyl
|
24
29
|
|
25
|
-
That is all you need to do. Type 'jeckyl' to see usage and references to documentation.
|
30
|
+
That is practically all you need to do. Type 'jeckyl' to see usage and references to documentation.
|
31
|
+
|
32
|
+
Otherwise start coding your jeckyl config file.
|
26
33
|
|
27
|
-
Jeckyl can be used to set the default location for the config files it processes. This will
|
28
|
-
be '/etc/jeckyl' unless you set the environment varibale 'JECKYL_CONFIG_DIR' to something else.
|
29
|
-
This could be done on a system-wide basis by include a file with this variable in /etc/env.d.
|
30
34
|
|
31
35
|
## Getting Started
|
32
36
|
|
@@ -221,18 +225,101 @@ use conf.complement(hash) ({Jeckyl::Config#complement}).
|
|
221
225
|
For example, the Jellog logger defines a set of logging parameters in Jellog::Config. These may be inherited
|
222
226
|
by another service that adds its own parameters (such as Jerbil):
|
223
227
|
|
224
|
-
|
228
|
+
all_options = Jerbil::Config.new(my_conf)
|
229
|
+
|
230
|
+
log_opts = Jellog::Config.intersection(all_options)
|
225
231
|
|
226
|
-
|
232
|
+
jerb_opts = all_options.complement(log_opts)
|
227
233
|
|
228
|
-
|
234
|
+
### Command Line Options - Jeckyl with Optparse
|
235
|
+
|
236
|
+
Jeckyl can also process command line options using optparse. This can be easily done by adding an option
|
237
|
+
method call to your parameter method, which has the same parameters as optparse:
|
238
|
+
|
239
|
+
def configure_param_with_option(param)
|
240
|
+
option_set = [:none, :some, :all]
|
241
|
+
default :none
|
242
|
+
comment "Sets the option type to be one of",
|
243
|
+
" :none - no options",
|
244
|
+
" :some - some options",
|
245
|
+
" :all - all options"
|
246
|
+
|
247
|
+
describe "set the option type"
|
248
|
+
option "-o", "--option Type", option_set
|
249
|
+
|
250
|
+
a_member_of(param, option_set)
|
251
|
+
end
|
229
252
|
|
230
|
-
|
253
|
+
The {Jeckyl::Config#describe describe} method allows a short usage style description
|
254
|
+
over the longer config-file comment, and the {Jeckyl::Config#option} method receives
|
255
|
+
the same parameters as the optparse#on method less the description bit.
|
231
256
|
|
257
|
+
Adding this to your parameter method does not actually do anything without then parsing
|
258
|
+
the options:
|
259
|
+
|
260
|
+
# create a config hash
|
261
|
+
opts = MyConfig.new
|
262
|
+
# parse command-line options with the default ARGV
|
263
|
+
opts.optparse
|
264
|
+
|
265
|
+
The {Jeckyl::Config#optparse optparse} method creates and Optparse object with the
|
266
|
+
options defined in your parameter methods (ignoring those with no option set), adds
|
267
|
+
a '-c' option for specifying a config file and a -h option for help. It also parses
|
268
|
+
the results.
|
269
|
+
|
270
|
+
The {Jeckyl::Config#optparse optparse} method can also yield the real Optparse object
|
271
|
+
into a block where you can add further options unrelated to Jeckyl. The parse! is done
|
272
|
+
automatically when the block returns.
|
273
|
+
|
274
|
+
# parse them with some extra options added
|
275
|
+
opts.optparse do |opts|
|
276
|
+
# receives the same methods as an optparse object
|
277
|
+
opts.on('-p', '--pretend', 'Do not do anything for real') do
|
278
|
+
@pretend = true
|
279
|
+
end
|
280
|
+
end
|
281
|
+
# parse! is done automatically at the end of the block
|
282
|
+
|
283
|
+
This does two things: it updates the parameters with option statements from the command line
|
284
|
+
and it also adds the options in the block but independent of the config object itself.
|
285
|
+
|
286
|
+
A word about the -c option. This is really only added so that it is shown in the help
|
287
|
+
results. The option is not used by the optparse method for fairly obvious reasons: the
|
288
|
+
instance method is applied to a config hash so the config file has already been evaluated.
|
289
|
+
To use the -c option you need to preprocess the command line with a class method:
|
290
|
+
|
291
|
+
# set the default config file
|
292
|
+
default_config_file = '/etc/my_app/config_file.rb'
|
293
|
+
# get the config options, if it exists
|
294
|
+
argv, config_file = MyConfig.get_config_opt(ARGV,default_config_file)
|
295
|
+
# now use the config file
|
296
|
+
@config = MyConfig.new(argv, config_file)
|
297
|
+
|
298
|
+
Note that {Jeckyl::Config.get_config_opt} returns the inputs if there is no option. And
|
299
|
+
at this time it only looks for '-c', so the bit about '--config' is a lie!
|
300
|
+
|
301
|
+
### Using Parameter methods on the fly
|
302
|
+
|
303
|
+
Jeckyl can also be used without a config file, for example as part of an API where the
|
304
|
+
inputs are coded in. A config class and parameter methods are defined as usual, including
|
305
|
+
defaults. On the inside of the API, where you might explicitly check inputs, you instead
|
306
|
+
call the parameter method:
|
307
|
+
|
308
|
+
# somewhere, a default config hash is created
|
309
|
+
@config = MyConfig.new
|
310
|
+
|
311
|
+
# later, this is used to check a parameter:
|
312
|
+
@param = @config.param_with_option(param)
|
313
|
+
|
314
|
+
# if the param does not match the config requirements then an exception is called
|
315
|
+
|
316
|
+
This allows you to blend in config files if required and command line options as well.
|
317
|
+
The only messy bit is that your API will raise {Jeckyl::ConfigError} unless you trap this and then
|
318
|
+
convert it to your own local exception.
|
232
319
|
|
233
320
|
### Jeckyl::Config < Hash
|
234
321
|
|
235
|
-
Finally, note that Jeckyl::Config is itself a subclass of Hash, and therefore Jeckyl config objects inherit
|
322
|
+
Finally, note that {Jeckyl::Config} is itself a subclass of Hash, and therefore Jeckyl config objects inherit
|
236
323
|
all hash methods as well!
|
237
324
|
|
238
325
|
## The 'jeckyl' Command
|
@@ -322,7 +409,7 @@ For example, a config file might contain:
|
|
322
409
|
greeting "Hello"
|
323
410
|
|
324
411
|
There is no greeting method, so method_missing is called instead. This remembers the name of the "missing" method (:greeting),
|
325
|
-
calls configure_greeting and stores the results in the
|
412
|
+
calls configure_greeting and stores the results in the instance's hash. The main reason for doing this (as opposed to just
|
326
413
|
calling the method 'greeting') is to enable the evaluation of defaults and comments in the context of each parameter method.
|
327
414
|
All of this is private and therefore under the bonnet.
|
328
415
|
|
@@ -330,13 +417,13 @@ All of this is private and therefore under the bonnet.
|
|
330
417
|
|
331
418
|
See the {file:Gemfile} for details of dependencies.
|
332
419
|
|
333
|
-
Tested on Ruby 1.
|
420
|
+
Tested on Ruby 1.9.3_p547 and 2.0.0_p481 (Gentoo 2.1 not yet unmasked at time of
|
421
|
+
writing - Oct 2014). Tested with RSpec 3.1.0 - see below.
|
334
422
|
|
335
423
|
## Testing Jeckyl
|
336
424
|
|
337
|
-
There is an rspec test file to test the whole thing (spec/jeckyl_spec.rb). It uses the test subclass in "
|
338
|
-
various config files in "
|
339
|
-
|
425
|
+
There is an rspec test file to test the whole thing (spec/jeckyl_spec.rb). It uses the test subclass in the "test" directory and
|
426
|
+
various config files in the "test/conf.d" directory. There is another rspec file that tests the config_check function.
|
340
427
|
|
341
428
|
## Why did I bother?
|
342
429
|
|
@@ -346,6 +433,10 @@ issues. In looking for yet another alternative, I came across the approach used
|
|
346
433
|
Unicorn (the backend web machine I now use for Rails apps). I liked the concept but
|
347
434
|
thought it could be made more general, which resulted in Jeckyl.
|
348
435
|
|
436
|
+
The name Jeckyl is one of those silly acronyms that means nothing in particular:
|
437
|
+
Jumpin' Ermin's Configurator for Kwick and easY Linux services
|
438
|
+
|
439
|
+
|
349
440
|
## Bugs etc
|
350
441
|
|
351
442
|
Details of bugs can be found in {file:Bugs.rdoc}
|
@@ -356,7 +447,7 @@ I am Robert Sharp and you can contact me on [GitHub](http://github.com/osburn-sh
|
|
356
447
|
|
357
448
|
## Copyright and Licence
|
358
449
|
|
359
|
-
Copyright (c) 2011-
|
450
|
+
Copyright (c) 2011-2014 Robert Sharp.
|
360
451
|
|
361
452
|
See {file:LICENCE.rdoc LICENCE} for details of the licence under which Jeckyl is released.
|
362
453
|
|
data/bin/jeckyl
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
#
|
14
14
|
#
|
15
15
|
|
16
|
-
require 'rubygems'
|
16
|
+
#require 'rubygems' # not required in ruby 1.9.3 +
|
17
17
|
require 'optplus'
|
18
18
|
|
19
19
|
require 'jeckyl'
|
@@ -130,17 +130,20 @@ class JeckylCli < Optplus::Parser
|
|
130
130
|
describe "klass", "generate a simple class template"
|
131
131
|
def klass
|
132
132
|
name = next_argument_or_error("missing class name")
|
133
|
+
names = name.split("::")
|
134
|
+
mod_name = names[0]
|
135
|
+
class_name = names[1] || 'Config'
|
133
136
|
parent = next_argument_or('Jeckyl::Config')
|
134
137
|
puts <<EOTXT
|
135
138
|
# Simple framework for defining Jeckyl options to put into a config hash
|
136
139
|
|
137
|
-
module #{
|
140
|
+
module #{mod_name}
|
138
141
|
|
139
142
|
# configuration parameters for #{name}
|
140
143
|
#
|
141
144
|
# @see file:<PATH_TO_CONFIG_MARKDOWN_FILE> #{name} Parameter Descriptions
|
142
145
|
#
|
143
|
-
class
|
146
|
+
class #{class_name} < #{parent}
|
144
147
|
|
145
148
|
def configure_a_parameter(val)
|
146
149
|
default "default"
|
@@ -154,10 +157,14 @@ end
|
|
154
157
|
EOTXT
|
155
158
|
|
156
159
|
end
|
157
|
-
help :klass, "
|
158
|
-
"
|
159
|
-
"
|
160
|
-
"
|
160
|
+
help :klass, " jeckyl klass <name> [<parent_class>}]",
|
161
|
+
"",
|
162
|
+
"Generate a simple class file as a template for defining your",
|
163
|
+
"own parameters. You can also specify a class to inherit if you want as",
|
164
|
+
"an additional parameter. Otherwise the parent will default to",
|
165
|
+
"Jeckyl::Config. Alternatives include Jellog::Config and JerbilService::Config.",
|
166
|
+
"Note the class name can be compound and will be split into module and class.",
|
167
|
+
"For example: 'Module::Class'."
|
161
168
|
|
162
169
|
|
163
170
|
describe "check", "check the given config file is valid for the given class"
|
data/lib/jeckyl.rb
CHANGED
@@ -327,7 +327,7 @@ module Jeckyl
|
|
327
327
|
# @param [Array] args which should usually be ARGV
|
328
328
|
# @yield self and optparse object to allow incidental options to be added
|
329
329
|
# @return false if --help so that the caller can decide what to do (e.g. exit)
|
330
|
-
def optparse(args)
|
330
|
+
def optparse(args=ARGV)
|
331
331
|
|
332
332
|
# ensure calls to parameter methods do not trample on things
|
333
333
|
@_last_symbol = nil
|
@@ -345,13 +345,6 @@ module Jeckyl
|
|
345
345
|
|
346
346
|
options << @_descriptions[param] if @_descriptions.has_key?(param)
|
347
347
|
|
348
|
-
# opt_str = ''
|
349
|
-
# options.each do |os|
|
350
|
-
# opt_str << os.inspect
|
351
|
-
# end
|
352
|
-
|
353
|
-
# puts "#{param}: #{opt_str}"
|
354
|
-
|
355
348
|
# get the method itself to call with the given arg
|
356
349
|
pref_method = self.method("#{prefix}_#{param}".to_sym)
|
357
350
|
|
@@ -385,17 +378,19 @@ module Jeckyl
|
|
385
378
|
def to_s(opts={})
|
386
379
|
keys = self.keys.collect {|k| k.to_s}
|
387
380
|
cols = 0
|
381
|
+
strs = Array.new
|
388
382
|
keys.each {|k| cols = k.length if k.length > cols}
|
389
383
|
keys.sort.each do |key_s|
|
390
|
-
|
391
|
-
|
384
|
+
str = ' '
|
385
|
+
str << key_s.ljust(cols)
|
392
386
|
key = key_s.to_sym
|
393
387
|
desc = @_descriptions[key]
|
394
388
|
value = self[key].inspect
|
395
|
-
|
396
|
-
|
397
|
-
|
389
|
+
str << ": #{value}"
|
390
|
+
str << " (#{desc})" unless desc.nil?
|
391
|
+
strs << str
|
398
392
|
end
|
393
|
+
return strs.join("\n")
|
399
394
|
end
|
400
395
|
|
401
396
|
|
data/lib/jeckyl/version.rb
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
# Created by Jevoom
|
2
2
|
#
|
3
|
-
#
|
4
|
-
#
|
5
|
-
#
|
3
|
+
# 01-Oct-2014
|
4
|
+
# General tidy up of gem (README, rspec tests etc) to bring things up to date.
|
6
5
|
|
7
6
|
module Jeckyl
|
8
|
-
# version set to 0.
|
9
|
-
Version = '0.
|
10
|
-
# date set to
|
11
|
-
Version_Date = '
|
12
|
-
#ident string set to: jeckyl-0.
|
13
|
-
Ident = 'jeckyl-0.
|
7
|
+
# version set to 0.4.0
|
8
|
+
Version = '0.4.0'
|
9
|
+
# date set to 01-Oct-2014
|
10
|
+
Version_Date = '01-Oct-2014'
|
11
|
+
#ident string set to: jeckyl-0.4.0 01-Oct-2014
|
12
|
+
Ident = 'jeckyl-0.4.0 01-Oct-2014'
|
14
13
|
end
|
data/spec/check_config_spec.rb
CHANGED
@@ -12,45 +12,45 @@ describe "Jeckyl Config Checker" do
|
|
12
12
|
# general tests
|
13
13
|
|
14
14
|
it "should checkout a simple config" do
|
15
|
-
conf_file = conf_path
|
16
|
-
rep_file = report_path
|
15
|
+
conf_file = File.join conf_path, 'jeckyl'
|
16
|
+
rep_file = File.join report_path,'ok.txt'
|
17
17
|
conf_ok = TestJeckyl.check_config(conf_file, rep_file)
|
18
|
-
conf_ok.should
|
18
|
+
conf_ok.should be true
|
19
19
|
message = File.read(rep_file).chomp
|
20
20
|
message.should == "No errors found in: #{conf_file}"
|
21
21
|
end
|
22
22
|
|
23
23
|
|
24
24
|
it "should complain if the config file does not exist" do
|
25
|
-
conf_file = conf_path
|
26
|
-
rep_file = report_path
|
25
|
+
conf_file = File.join conf_path, 'never', 'likely', 'to', 'be', 'there'
|
26
|
+
rep_file = File.join report_path, 'not_ok.txt'
|
27
27
|
conf_ok = TestJeckyl.check_config(conf_file, rep_file)
|
28
|
-
conf_ok.should
|
28
|
+
conf_ok.should be false
|
29
29
|
message = File.read(rep_file).chomp
|
30
30
|
message.should == "No such config file: #{conf_file}"
|
31
31
|
end
|
32
32
|
|
33
33
|
it "should return false if the config file has a syntax error" do
|
34
|
-
conf_file = conf_path
|
35
|
-
rep_file = report_path
|
34
|
+
conf_file = File.join conf_path, "syntax_error"
|
35
|
+
rep_file = File.join report_path, 'not_ok.txt'
|
36
36
|
conf_ok = TestJeckyl.check_config(conf_file, rep_file)
|
37
|
-
conf_ok.should
|
37
|
+
conf_ok.should be false
|
38
38
|
message = File.read(rep_file).chomp
|
39
|
-
message.should match(
|
39
|
+
message.should match(/^#{conf_file}:\d+: unterminated/)
|
40
40
|
end
|
41
41
|
|
42
42
|
it "should return false if the config file has an error" do
|
43
|
-
conf_file = conf_path
|
44
|
-
rep_file = report_path
|
43
|
+
conf_file = File.join conf_path, "not_a_bool"
|
44
|
+
rep_file = File.join report_path, 'not_ok.txt'
|
45
45
|
conf_ok = TestJeckyl.check_config(conf_file, rep_file)
|
46
|
-
conf_ok.should
|
46
|
+
conf_ok.should be false
|
47
47
|
message = File.read(rep_file).chomp
|
48
48
|
message.should match(/^\[debug\]:/)
|
49
49
|
end
|
50
50
|
|
51
51
|
it "should fail if it cannot write to the report file" do
|
52
|
-
conf_file = conf_path
|
53
|
-
rep_file = report_path
|
52
|
+
conf_file = File.join conf_path, "jeckyl"
|
53
|
+
rep_file = File.join report_path, 'no_such_directory', 'ok.txt'
|
54
54
|
lambda{conf_ok = TestJeckyl.check_config(conf_file, rep_file)}.should raise_error(Jeckyl::ReportFileError)
|
55
55
|
end
|
56
56
|
|
data/spec/jeckyl_spec.rb
CHANGED
@@ -29,7 +29,7 @@ describe "Jeckyl" do
|
|
29
29
|
conf[:log_level].should == :verbose
|
30
30
|
conf[:log_rotation].should == 5
|
31
31
|
conf[:email].should == "robert@osburn-sharp.ath.cx"
|
32
|
-
conf.has_key?(:sieve).should
|
32
|
+
conf.has_key?(:sieve).should be true
|
33
33
|
conf[:config_files].length.should == 1
|
34
34
|
conf[:option_set][:peter].should == 37
|
35
35
|
conf[:offset].should == 134
|
@@ -185,12 +185,12 @@ describe "Jeckyl" do
|
|
185
185
|
opts.length.should == 4
|
186
186
|
subopts = Aclass.intersection(opts)
|
187
187
|
subopts.length.should ==2
|
188
|
-
subopts.has_key?(:a_bool).should
|
189
|
-
subopts.has_key?(:no_def).should
|
188
|
+
subopts.has_key?(:a_bool).should be true
|
189
|
+
subopts.has_key?(:no_def).should be true
|
190
190
|
opts.complement(subopts)
|
191
191
|
opts.length.should == 2
|
192
|
-
opts.has_key?(:config_files).should
|
193
|
-
opts.has_key?(:another).should
|
192
|
+
opts.has_key?(:config_files).should be true
|
193
|
+
opts.has_key?(:another).should be true
|
194
194
|
end
|
195
195
|
end
|
196
196
|
|
data/spec/spec_helper.rb
CHANGED
@@ -2,10 +2,12 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
2
2
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
3
|
require 'jeckyl'
|
4
4
|
require 'rspec'
|
5
|
-
require 'rspec/autorun'
|
6
5
|
|
7
6
|
RSpec.configure do |config|
|
8
|
-
config.
|
7
|
+
config.color = true
|
9
8
|
config.formatter = :doc
|
10
|
-
|
9
|
+
# using older shoulds for the time being
|
10
|
+
config.expect_with :rspec do |c|
|
11
|
+
c.syntax = :should # disables `expect` and deprecation warnings
|
12
|
+
end
|
11
13
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jeckyl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dr Robert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: !binary |-
|
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
121
|
version: '0'
|
122
122
|
requirements: []
|
123
123
|
rubyforge_project:
|
124
|
-
rubygems_version: 2.0.
|
124
|
+
rubygems_version: 2.0.14
|
125
125
|
signing_key:
|
126
126
|
specification_version: 4
|
127
127
|
summary: Create and manage configuration files in Ruby for Ruby.
|