qed 2.8.2 → 2.8.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/.ruby +4 -3
- data/HISTORY.rdoc +18 -0
- data/README.rdoc +35 -7
- data/lib/qed.yml +4 -3
- data/lib/qed/cli/qed.rb +30 -23
- data/lib/qed/session.rb +36 -38
- data/lib/qed/settings.rb +140 -35
- metadata +23 -12
data/.ruby
CHANGED
@@ -13,6 +13,7 @@ requirements:
|
|
13
13
|
- name: facets
|
14
14
|
version: 2.8+
|
15
15
|
- name: brass
|
16
|
+
- name: confection
|
16
17
|
- name: detroit
|
17
18
|
groups:
|
18
19
|
- build
|
@@ -40,10 +41,10 @@ revision: 0
|
|
40
41
|
created: '2009-06-16'
|
41
42
|
summary: Quod Erat Demonstrandum
|
42
43
|
title: QED
|
43
|
-
version: 2.8.
|
44
|
-
scm_uri: http://github.com/rubyworks/qed/blob/master/
|
44
|
+
version: 2.8.3
|
45
45
|
name: qed
|
46
|
+
webcvs: http://github.com/rubyworks/qed/blob/master/
|
46
47
|
description: ! 'QED (Quality Ensured Demonstrations) is a TDD/BDD framework
|
47
48
|
|
48
49
|
utilizing Literate Programming techniques.'
|
49
|
-
date: '2012-03-
|
50
|
+
date: '2012-03-14'
|
data/HISTORY.rdoc
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
= RELEASE HISTORY
|
2
2
|
|
3
|
+
== 2.8.3 | 2012-03-14
|
4
|
+
|
5
|
+
What a difference a week makes ;) The Confection library has been substantially
|
6
|
+
improved and if that trend contiunes at all then I think it will be well worth
|
7
|
+
supporting. So with this release QED will again move configuration handling
|
8
|
+
over to Confection. Jump over to the Confection project to learn how to use it.
|
9
|
+
In short, this release reverts the previous release. Along with this change,
|
10
|
+
profiles are now specified via the `-p`/`--profile` command line option instead
|
11
|
+
of specialized options.
|
12
|
+
|
13
|
+
Changes:
|
14
|
+
|
15
|
+
* Use Confection library for configuration.
|
16
|
+
* Use `-p`/`--profile` to select configuration profile.
|
17
|
+
* Use `config='none'` environment variable to circumvent Confection.
|
18
|
+
* Deprecated use of `.map` configuration redirection file.
|
19
|
+
|
20
|
+
|
3
21
|
== 2.8.2 | 2012-03-07
|
4
22
|
|
5
23
|
This release simply reverts the configuration file back to an
|
data/README.rdoc
CHANGED
@@ -115,9 +115,9 @@ of running, such as <code>Before :each</code> or <code>After :all</code>,
|
|
115
115
|
and *pattern advice* which are used to match against descriptive
|
116
116
|
phrases in the QED demos. An example would be:
|
117
117
|
|
118
|
-
|
119
|
-
|
120
|
-
|
118
|
+
When "a new round is started" do
|
119
|
+
@round = []
|
120
|
+
end
|
121
121
|
|
122
122
|
So that whenever the phrase "a new round is started" appears in a demo,
|
123
123
|
the @round instance variable with be reset to an empty array.
|
@@ -126,11 +126,31 @@ It is rather amazing what can be accomplished with such a system,
|
|
126
126
|
be sure to look at QED's own demonstrandum to get a better notion of
|
127
127
|
how you can put the the system to use.
|
128
128
|
|
129
|
+
=== Configuration
|
130
|
+
|
131
|
+
QED uses the {Confection}[http://rubyworks.github.com/confection] library to
|
132
|
+
handle configuration.
|
133
|
+
|
134
|
+
Here's a generally useful example of using SimpleCov to generate a test
|
135
|
+
coverage report when running your QED demos. Add this to your `Confile`:
|
136
|
+
|
137
|
+
config :qed, :profile=>:coverage do
|
138
|
+
require 'simplecov'
|
139
|
+
SimpleCov.start do
|
140
|
+
coverage_dir 'log/coverage'
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
Or omit the `config` method and just add the block's code to `task/qed-coverage.rb`.
|
145
|
+
Either approch makes the `coverage` profile available to the `qed` command.
|
146
|
+
|
147
|
+
$ qed -p coverage
|
148
|
+
|
129
149
|
=== Generating Documentation
|
130
150
|
|
131
151
|
To generate documentation from QED documents, use the +qedoc+ command.
|
132
152
|
|
133
|
-
|
153
|
+
$ qedoc --output doc/qedoc --title "Example" demo/*.rdoc
|
134
154
|
|
135
155
|
When documenting, QED recognizes the format by the file extension and
|
136
156
|
treats it accordingly. An extension of <code>.qed</code> is treated the same
|
@@ -144,13 +164,20 @@ on the use of these commands.
|
|
144
164
|
|
145
165
|
QED depends on the following external libraries:
|
146
166
|
|
147
|
-
|
148
|
-
|
149
|
-
|
167
|
+
* {BRASS}[http://rubyworks.github.com/brass] - Assertions System
|
168
|
+
* {ANSI}[http://rubyworks.github.com/ansi] - ANSI Color Codes
|
169
|
+
* {Confection}[http://rubyworks.github.com/confection] - Project Tool Configuration
|
170
|
+
* {Facets}[http://rubyworks.github.com/facets] - Core Extensions
|
150
171
|
|
151
172
|
These will be automatically installed when installing QED via RubyGems,
|
152
173
|
if they are not already installed.
|
153
174
|
|
175
|
+
Optional libraries that are generally useful with QED.
|
176
|
+
|
177
|
+
* {AE}[http://rubyworks.github.com/ae] - Assertions Framework
|
178
|
+
|
179
|
+
Install these individually and require them in your applique to use.
|
180
|
+
|
154
181
|
|
155
182
|
== Copyrights
|
156
183
|
|
@@ -161,3 +188,4 @@ Copyright (c) 2009 Rubyworks, Thomas Sawyer
|
|
161
188
|
BSD 2 Clause License
|
162
189
|
|
163
190
|
See COPYING.rdoc for details.
|
191
|
+
|
data/lib/qed.yml
CHANGED
@@ -13,6 +13,7 @@ requirements:
|
|
13
13
|
- name: facets
|
14
14
|
version: 2.8+
|
15
15
|
- name: brass
|
16
|
+
- name: confection
|
16
17
|
- name: detroit
|
17
18
|
groups:
|
18
19
|
- build
|
@@ -40,10 +41,10 @@ revision: 0
|
|
40
41
|
created: '2009-06-16'
|
41
42
|
summary: Quod Erat Demonstrandum
|
42
43
|
title: QED
|
43
|
-
version: 2.8.
|
44
|
-
scm_uri: http://github.com/rubyworks/qed/blob/master/
|
44
|
+
version: 2.8.3
|
45
45
|
name: qed
|
46
|
+
webcvs: http://github.com/rubyworks/qed/blob/master/
|
46
47
|
description: ! 'QED (Quality Ensured Demonstrations) is a TDD/BDD framework
|
47
48
|
|
48
49
|
utilizing Literate Programming techniques.'
|
49
|
-
date: '2012-03-
|
50
|
+
date: '2012-03-14'
|
data/lib/qed/cli/qed.rb
CHANGED
@@ -21,8 +21,8 @@ module QED
|
|
21
21
|
# exit -1
|
22
22
|
#end
|
23
23
|
|
24
|
-
session
|
25
|
-
success
|
24
|
+
session = Session.new(files, options)
|
25
|
+
success = session.run
|
26
26
|
|
27
27
|
exit -1 unless success
|
28
28
|
end
|
@@ -33,16 +33,8 @@ module QED
|
|
33
33
|
options_parser = OptionParser.new do |opt|
|
34
34
|
opt.banner = "Usage: qed [options] <files...>"
|
35
35
|
|
36
|
-
opt.separator("Custom Profiles:") unless settings.profiles.empty?
|
37
|
-
|
38
|
-
settings.profiles.each do |name, value|
|
39
|
-
o = "--#{name}"
|
40
|
-
opt.on(o, "#{name} custom profile") do
|
41
|
-
options[:profile] = name.to_sym
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
36
|
opt.separator("Report Formats (pick one):")
|
37
|
+
|
46
38
|
#opt.on('--dotprogress', '-d', "use dot-progress reporter [default]") do
|
47
39
|
# options[:format] = :dotprogress
|
48
40
|
#end
|
@@ -66,12 +58,13 @@ module QED
|
|
66
58
|
end
|
67
59
|
|
68
60
|
opt.separator("Control Options:")
|
61
|
+
|
62
|
+
opt.on('-p', '--profile NAME', "load runtime profile") do |name|
|
63
|
+
options[:profile] = name.to_sym
|
64
|
+
end
|
69
65
|
opt.on('--comment', '-c', "run comment code") do
|
70
66
|
options[:mode] = :comment
|
71
67
|
end
|
72
|
-
opt.on('--profile', '-p NAME', "load runtime profile") do |name|
|
73
|
-
options[:profile] = name
|
74
|
-
end
|
75
68
|
opt.on('--loadpath', "-I PATH", "add paths to $LOAD_PATH") do |paths|
|
76
69
|
options[:loadpath] = paths.split(/[:;]/).map{|d| File.expand_path(d)}
|
77
70
|
end
|
@@ -81,10 +74,7 @@ module QED
|
|
81
74
|
opt.on('--rooted', '-R', "run from project root instead of temporary directory") do
|
82
75
|
options[:rooted] = true
|
83
76
|
end
|
84
|
-
|
85
|
-
# The qed command --trace option takes a count.
|
86
|
-
# Use 0 to mean all.
|
87
|
-
opt.on('--trace', '-t [COUNT]', "show full backtraces for exceptions") do |cnt|
|
77
|
+
opt.on('--trace', '-t [COUNT]', "number of backtraces for exceptions (0 for all)") do |cnt|
|
88
78
|
#options[:trace] = true
|
89
79
|
ENV['trace'] = cnt
|
90
80
|
end
|
@@ -92,10 +82,11 @@ module QED
|
|
92
82
|
$VERBOSE = true # wish this were called $WARN!
|
93
83
|
end
|
94
84
|
opt.on('--debug', "exit immediately upon raised exception") do
|
95
|
-
$DEBUG
|
85
|
+
$DEBUG = true
|
96
86
|
end
|
97
87
|
|
98
88
|
opt.separator("Optional Commands:")
|
89
|
+
|
99
90
|
opt.on_tail('--version', "display version") do
|
100
91
|
puts "QED #{QED::VERSION}"
|
101
92
|
exit
|
@@ -106,18 +97,34 @@ module QED
|
|
106
97
|
end
|
107
98
|
opt.on_tail('--help', '-h', "display this help message") do
|
108
99
|
puts opt
|
109
|
-
|
100
|
+
|
101
|
+
unless settings.profiles.empty?
|
102
|
+
puts "Available Profiles:"
|
103
|
+
require 'confection'
|
104
|
+
Confection.profiles(:qed).each do |name|
|
105
|
+
puts " #{name}"
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
exit -1
|
110
110
|
end
|
111
111
|
end
|
112
|
+
|
112
113
|
options_parser.parse!(argv)
|
114
|
+
|
113
115
|
return argv, options
|
114
116
|
end
|
115
117
|
|
118
|
+
#
|
119
|
+
#def self.profiles
|
120
|
+
# Settings.profiles
|
121
|
+
#end
|
122
|
+
|
116
123
|
# TODO: Pass to Session class, instead of acting global.
|
117
124
|
# It is used at the class level to get profiles for the cli.
|
118
|
-
def self.settings
|
119
|
-
|
120
|
-
end
|
125
|
+
#def self.settings
|
126
|
+
# @settings ||= Settings.new([])
|
127
|
+
#end
|
121
128
|
|
122
129
|
end
|
123
130
|
|
data/lib/qed/session.rb
CHANGED
@@ -9,67 +9,65 @@ module QED
|
|
9
9
|
#
|
10
10
|
class Session
|
11
11
|
|
12
|
-
# If files are not specified than these directories
|
13
|
-
# will be searched.
|
14
|
-
DEFAULT_FILES = ['qed', 'demo', 'spec']
|
15
|
-
|
16
12
|
# Default recognized demos file types.
|
17
13
|
DEMO_TYPES = %w{qed rdoc md markdown}
|
18
14
|
|
19
15
|
#
|
20
16
|
CODE_TYPES = %w{rb}
|
21
17
|
|
22
|
-
#
|
23
|
-
|
18
|
+
# Returns instance of Settings class.
|
19
|
+
attr :settings
|
20
|
+
|
21
|
+
# New Session
|
22
|
+
def initialize(files, options={})
|
23
|
+
require_reporters
|
24
|
+
|
25
|
+
@settings = Settings.new(files, options)
|
26
|
+
end
|
24
27
|
|
25
28
|
# Demonstration files (or globs).
|
26
|
-
|
29
|
+
def files
|
30
|
+
settings.files
|
31
|
+
end
|
27
32
|
|
28
33
|
# File patterns to omit.
|
29
|
-
|
34
|
+
def omit
|
35
|
+
settings.omit
|
36
|
+
end
|
30
37
|
|
31
38
|
# Output format.
|
32
|
-
|
39
|
+
def format
|
40
|
+
settings.format
|
41
|
+
end
|
33
42
|
|
34
43
|
# Trace execution?
|
35
|
-
|
44
|
+
def trace?
|
45
|
+
settings.trace
|
46
|
+
end
|
36
47
|
|
37
48
|
# Parse mode.
|
38
|
-
|
49
|
+
def mode
|
50
|
+
settings.mode
|
51
|
+
end
|
39
52
|
|
40
53
|
# Paths to be added to $LOAD_PATH.
|
41
|
-
|
54
|
+
def loadpath
|
55
|
+
settings.loadpath
|
56
|
+
end
|
42
57
|
|
43
58
|
# Libraries to be required.
|
44
|
-
|
59
|
+
def requires
|
60
|
+
settings.requires
|
61
|
+
end
|
45
62
|
|
46
63
|
# Operate from project root?
|
47
|
-
|
64
|
+
def rooted
|
65
|
+
settings.rooted
|
66
|
+
end
|
48
67
|
|
49
68
|
# Selected profile.
|
50
|
-
|
51
|
-
|
52
|
-
# Returns instance of Settings class.
|
53
|
-
attr :settings
|
54
|
-
|
55
|
-
# New Session
|
56
|
-
def initialize(files, options={})
|
57
|
-
require_reporters
|
58
|
-
|
59
|
-
@files = [files].flatten.compact
|
60
|
-
@files = [DEFAULT_FILES.find{ |d| File.directory?(d) }] if @files.empty?
|
61
|
-
@files = @files.compact
|
62
|
-
|
63
|
-
@format = options[:format] || :dot
|
64
|
-
@trace = options[:trace] || false
|
65
|
-
@mode = options[:mode] || nil
|
66
|
-
@profile = options[:profile] || :default
|
67
|
-
@loadpath = options[:loadpath] || ['lib']
|
68
|
-
@requires = options[:requires] || []
|
69
|
-
|
70
|
-
@omit = OMIT_PATHS # TODO: eventually make configurable
|
71
|
-
|
72
|
-
@settings = Settings.new(options)
|
69
|
+
def profile
|
70
|
+
settings.profile
|
73
71
|
end
|
74
72
|
|
75
73
|
#
|
@@ -95,7 +93,7 @@ module QED
|
|
95
93
|
def reporter
|
96
94
|
@reporter ||= (
|
97
95
|
name = Reporter.constants.find{ |c| /#{format}/ =~ c.to_s.downcase }
|
98
|
-
Reporter.const_get(name).new(:trace => trace)
|
96
|
+
Reporter.const_get(name).new(:trace => trace?)
|
99
97
|
)
|
100
98
|
end
|
101
99
|
|
data/lib/qed/settings.rb
CHANGED
@@ -11,7 +11,7 @@ module QED
|
|
11
11
|
# In this file special configuration setups can be placed to automatically
|
12
12
|
# effect QED execution, in particular optional profiles can be defined.
|
13
13
|
#
|
14
|
-
#
|
14
|
+
# if ENV['cover']
|
15
15
|
# require 'simplecov'
|
16
16
|
# SimpleCov.start do
|
17
17
|
# coverage_dir 'log/coverage'
|
@@ -24,36 +24,117 @@ module QED
|
|
24
24
|
#
|
25
25
|
class Settings
|
26
26
|
|
27
|
+
#
|
28
|
+
# Because QED usese the Confection library, but Confection also
|
29
|
+
# uses QED for testing, a special configuration exception needed
|
30
|
+
# be sliced out so Confection's test could run without QED using
|
31
|
+
# it. We handle this via a environment variable `config`. Set
|
32
|
+
# it to 'none' to deactivate the use of Confection.
|
33
|
+
#
|
34
|
+
def self.configless?
|
35
|
+
ENV['config'] == 'none'
|
36
|
+
end
|
37
|
+
|
27
38
|
require 'tmpdir'
|
28
39
|
require 'fileutils'
|
29
40
|
|
41
|
+
require 'confection' unless configless?
|
42
|
+
|
43
|
+
# If files are not specified than these directories
|
44
|
+
# will be searched.
|
45
|
+
DEFAULT_FILES = ['qed', 'demo', 'spec']
|
46
|
+
|
30
47
|
# QED support configuration file mapping.
|
31
|
-
MAP_FILE = '.map'
|
48
|
+
#MAP_FILE = '.map'
|
32
49
|
|
33
50
|
# Glob pattern used to search for project's root directory.
|
34
|
-
ROOT_PATTERN = '{.map,.ruby,.git/,.hg/,_darcs
|
51
|
+
ROOT_PATTERN = '{.map,.ruby,.git/,.hg/,_darcs/}'
|
35
52
|
|
36
|
-
# Glob pattern used to find QED configuration file
|
37
|
-
CONFIG_PATTERN = '{task/qed
|
53
|
+
# Glob pattern used to find QED configuration file relative to root directory.
|
54
|
+
CONFIG_PATTERN = '{.,,task/}qed,qedfile{,.rb}'
|
38
55
|
|
39
56
|
# Home directory.
|
40
57
|
HOME = File.expand_path('~')
|
41
58
|
|
59
|
+
# Directory names to omit from automatic selection.
|
60
|
+
OMIT_PATHS = %w{applique helpers support sample samples fixture fixtures}
|
61
|
+
|
42
62
|
#
|
43
63
|
#
|
44
64
|
#
|
45
|
-
def initialize(options={})
|
65
|
+
def initialize(files, options={})
|
66
|
+
@files = [files].flatten.compact
|
67
|
+
@files = [DEFAULT_FILES.find{ |d| File.directory?(d) }] if @files.empty?
|
68
|
+
@files = @files.compact
|
69
|
+
|
70
|
+
@format = options[:format] || :dot
|
71
|
+
@trace = options[:trace] || false
|
72
|
+
@mode = options[:mode] || nil
|
73
|
+
@profile = options[:profile] || :default
|
74
|
+
@loadpath = options[:loadpath] || ['lib']
|
75
|
+
@requires = options[:requires] || []
|
76
|
+
|
77
|
+
@omit = OMIT_PATHS # TODO: eventually make configurable
|
78
|
+
|
46
79
|
@rootless = options[:rootless]
|
47
|
-
|
80
|
+
#@profiles = {}
|
48
81
|
|
49
82
|
@root = @rootless ? system_tmpdir : find_root
|
50
83
|
|
51
84
|
# Set global. TODO: find away to not need this ?
|
52
85
|
$ROOT = @root
|
53
86
|
|
54
|
-
|
55
|
-
|
56
|
-
|
87
|
+
initialize_configuration
|
88
|
+
|
89
|
+
#profile = options[:profile]
|
90
|
+
#confection(:qed, profile)
|
91
|
+
end
|
92
|
+
|
93
|
+
#
|
94
|
+
# Because QED uses the Confection library, but Confection also
|
95
|
+
# uses QED for testing, a special configuration exception needed
|
96
|
+
# be sliced out so Confection's demos could run without QED using
|
97
|
+
# it. We handle this via a `.qed` config file. Add this file
|
98
|
+
# to a project and it will deactivate the use of Confection,
|
99
|
+
# and load the contents of the file instead.
|
100
|
+
#
|
101
|
+
def initialize_configuration
|
102
|
+
require 'confection' unless configless?
|
103
|
+
end
|
104
|
+
|
105
|
+
# Demonstration files (or globs).
|
106
|
+
attr_reader :files
|
107
|
+
|
108
|
+
# File patterns to omit.
|
109
|
+
attr_accessor :omit
|
110
|
+
|
111
|
+
# Output format.
|
112
|
+
attr_accessor :format
|
113
|
+
|
114
|
+
# Trace execution?
|
115
|
+
attr_accessor :trace
|
116
|
+
|
117
|
+
# Parse mode.
|
118
|
+
attr_accessor :mode
|
119
|
+
|
120
|
+
# Paths to be added to $LOAD_PATH.
|
121
|
+
attr_reader :loadpath
|
122
|
+
|
123
|
+
# Libraries to be required.
|
124
|
+
attr_reader :requires
|
125
|
+
|
126
|
+
# Operate from project root?
|
127
|
+
attr_accessor :rooted
|
128
|
+
|
129
|
+
# Selected profile.
|
130
|
+
attr_accessor :profile
|
131
|
+
|
132
|
+
#
|
133
|
+
# If Environment varible is set to 'none' then COnfection will not be
|
134
|
+
# used for configuration.
|
135
|
+
#
|
136
|
+
def configless?
|
137
|
+
self.class.configless?
|
57
138
|
end
|
58
139
|
|
59
140
|
#
|
@@ -107,6 +188,8 @@ module QED
|
|
107
188
|
#
|
108
189
|
# Define a profile.
|
109
190
|
#
|
191
|
+
# @deprecated Confection library is used instead.
|
192
|
+
#
|
110
193
|
# @param [#to_s] name
|
111
194
|
# Name of profile.
|
112
195
|
#
|
@@ -114,10 +197,21 @@ module QED
|
|
114
197
|
#
|
115
198
|
# @return [Proc] The procedure.
|
116
199
|
#
|
117
|
-
def profile(name, &block)
|
118
|
-
|
200
|
+
#def profile(name, &block)
|
201
|
+
# raise "The #profile method is deprecated."
|
202
|
+
# #@profiles[name.to_s] = block
|
203
|
+
#end
|
204
|
+
|
205
|
+
#
|
206
|
+
# Profiles are collected from the Confection library, unless
|
207
|
+
# confection is deactivated via the override file.
|
208
|
+
#
|
209
|
+
def profiles
|
210
|
+
return [] if configless?
|
211
|
+
Confection.profiles(:qed)
|
119
212
|
end
|
120
213
|
|
214
|
+
=begin
|
121
215
|
#
|
122
216
|
# Keeps a list of defined profiles.
|
123
217
|
#
|
@@ -146,6 +240,18 @@ module QED
|
|
146
240
|
# require(file)
|
147
241
|
#end
|
148
242
|
end
|
243
|
+
=end
|
244
|
+
|
245
|
+
#
|
246
|
+
# Load QED configuration profile. QED configurations are defined
|
247
|
+
# via standards of the Confection library, unless otherwise
|
248
|
+
# deativated via the `.qed` file.
|
249
|
+
#
|
250
|
+
def load_profile(profile)
|
251
|
+
return if config_override
|
252
|
+
config = confection(:qed, profile.to_sym)
|
253
|
+
config.exec
|
254
|
+
end
|
149
255
|
|
150
256
|
#
|
151
257
|
# Locate project's root directory. This is done by searching upward
|
@@ -171,7 +277,7 @@ module QED
|
|
171
277
|
path = File.expand_path(path || Dir.pwd)
|
172
278
|
path = File.dirname(path) unless File.directory?(path)
|
173
279
|
|
174
|
-
root = lookup(ROOT_PATTERN, path)
|
280
|
+
root = lookup(ROOT_PATTERN, path) || lookup(CONFIG_PATTERN, path)
|
175
281
|
return root if root
|
176
282
|
|
177
283
|
#root = lookup(path, '{qed,demo,spec}/')
|
@@ -220,32 +326,31 @@ module QED
|
|
220
326
|
#
|
221
327
|
# Lookup, cache and return QED config file.
|
222
328
|
#
|
223
|
-
def
|
224
|
-
@
|
225
|
-
glob
|
226
|
-
Dir.glob(File.join(root_directory,glob)).first
|
329
|
+
def config_override
|
330
|
+
@config_override ||= (
|
331
|
+
Dir.glob(File.join(root_directory, '.qed')).first
|
227
332
|
)
|
228
333
|
end
|
229
334
|
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
def file_map
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
end
|
335
|
+
##
|
336
|
+
## Return cached file map from a project's `.map` file, if it exists.
|
337
|
+
##
|
338
|
+
#def file_map
|
339
|
+
# @file_map ||= (
|
340
|
+
# if File.exist?(map_file)
|
341
|
+
# YAML.load_file(map_file)
|
342
|
+
# else
|
343
|
+
# {}
|
344
|
+
# end
|
345
|
+
# )
|
346
|
+
#end
|
242
347
|
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
def map_file
|
247
|
-
|
248
|
-
end
|
348
|
+
##
|
349
|
+
## Lookup, cache and return `.map` map file.
|
350
|
+
##
|
351
|
+
#def map_file
|
352
|
+
# @_map_file ||= File.join(root_directory,MAP_FILE)
|
353
|
+
#end
|
249
354
|
|
250
355
|
end
|
251
356
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.8.
|
4
|
+
version: 2.8.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ansi
|
16
|
-
requirement: &
|
16
|
+
requirement: &32221080 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *32221080
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: facets
|
27
|
-
requirement: &
|
27
|
+
requirement: &32219960 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '2.8'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *32219960
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: brass
|
38
|
-
requirement: &
|
38
|
+
requirement: &32234580 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,21 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *32234580
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: confection
|
49
|
+
requirement: &32233240 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *32233240
|
47
58
|
- !ruby/object:Gem::Dependency
|
48
59
|
name: detroit
|
49
|
-
requirement: &
|
60
|
+
requirement: &32232100 !ruby/object:Gem::Requirement
|
50
61
|
none: false
|
51
62
|
requirements:
|
52
63
|
- - ! '>='
|
@@ -54,10 +65,10 @@ dependencies:
|
|
54
65
|
version: '0'
|
55
66
|
type: :development
|
56
67
|
prerelease: false
|
57
|
-
version_requirements: *
|
68
|
+
version_requirements: *32232100
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: ae
|
60
|
-
requirement: &
|
71
|
+
requirement: &32231100 !ruby/object:Gem::Requirement
|
61
72
|
none: false
|
62
73
|
requirements:
|
63
74
|
- - ! '>='
|
@@ -65,7 +76,7 @@ dependencies:
|
|
65
76
|
version: '0'
|
66
77
|
type: :development
|
67
78
|
prerelease: false
|
68
|
-
version_requirements: *
|
79
|
+
version_requirements: *32231100
|
69
80
|
description: ! 'QED (Quality Ensured Demonstrations) is a TDD/BDD framework
|
70
81
|
|
71
82
|
utilizing Literate Programming techniques.'
|