qed 2.8.2 → 2.8.3
Sign up to get free protection for your applications and to get access to all the features.
- 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.'
|