qed 1.3 → 2.0.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.
- data/CHANGELOG.txt +647 -0
- data/HISTORY +16 -0
- data/bin/qedoc +2 -51
- data/demo/error.rdoc +21 -0
- data/demo/{03_site.qed → website.rdoc} +0 -0
- data/doc/qedoc/index.html +160 -69
- data/lib/qed.rb +2 -2
- data/lib/qed/advice.rb +61 -0
- data/lib/qed/advice/events.rb +54 -0
- data/lib/qed/advice/patterns.rb +64 -0
- data/lib/qed/command.rb +76 -65
- data/lib/qed/config.rb +48 -13
- data/lib/qed/evaluator.rb +124 -0
- data/lib/qed/reporter/base.rb +93 -39
- data/lib/qed/reporter/bullet.rb +79 -0
- data/lib/qed/reporter/dotprogress.rb +9 -29
- data/lib/qed/reporter/html.rb +61 -0
- data/lib/qed/reporter/verbatim.rb +41 -47
- data/lib/qed/scope.rb +77 -0
- data/lib/qed/script.rb +66 -399
- data/lib/qed/session.rb +95 -0
- data/lib/qedoc/command.rb +76 -0
- data/lib/{qed → qedoc}/document.rb +31 -22
- data/lib/{qed → qedoc}/document/jquery.js +0 -0
- data/lib/{qed → qedoc}/document/markup.rb +0 -0
- data/lib/{qed → qedoc}/document/template.rhtml +0 -0
- data/meta/requires +2 -0
- data/meta/version +1 -1
- metadata +71 -34
- data/Syckfile +0 -70
- data/demo/01_spec.qed +0 -175
- data/demo/02_err.qed +0 -18
- data/demo/data.txt +0 -1
- data/demo/helpers/sample.rb +0 -4
- data/demo/table.yml +0 -5
- data/lib/qed/extract.rb +0 -137
- data/lib/qed/reporter/ditto.rb +0 -72
- data/lib/qed/reporter/summary.rb +0 -68
- data/lib/qed/runner.rb +0 -198
- data/lib/qed/script1.rb +0 -495
data/lib/qed/session.rb
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
module QED
|
2
|
+
|
3
|
+
#require 'qed/config'
|
4
|
+
require 'qed/script'
|
5
|
+
|
6
|
+
# = Demonstration Run-time Session
|
7
|
+
#
|
8
|
+
# The Session class encapsulates a set of demonstrations
|
9
|
+
# and the procedure for looping through them and running
|
10
|
+
# each in turn.
|
11
|
+
#
|
12
|
+
class Session
|
13
|
+
|
14
|
+
# Demonstration files.
|
15
|
+
attr :demos
|
16
|
+
|
17
|
+
# Output format.
|
18
|
+
attr_accessor :format
|
19
|
+
|
20
|
+
# Trace mode
|
21
|
+
attr_accessor :trace
|
22
|
+
|
23
|
+
# New demonstration
|
24
|
+
def initialize(demos, options={})
|
25
|
+
require_reporters
|
26
|
+
|
27
|
+
@demos = [demos].flatten
|
28
|
+
|
29
|
+
@format = :dotprogress
|
30
|
+
@trace = false
|
31
|
+
|
32
|
+
options.each do |k,v|
|
33
|
+
__send__("#{k}=", v) if v
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# Top-level configuration.
|
38
|
+
#def config
|
39
|
+
# QED.config
|
40
|
+
#end
|
41
|
+
|
42
|
+
# TODO: Ultimately use Plugin library.
|
43
|
+
def require_reporters
|
44
|
+
Dir[File.dirname(__FILE__) + '/reporter/*'].each do |file|
|
45
|
+
require file
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# Instance of selected Reporter subclass.
|
50
|
+
def reporter
|
51
|
+
@reporter ||= (
|
52
|
+
name = Reporter.constants.find{ |c| /#{format}/ =~ c.downcase }
|
53
|
+
Reporter.const_get(name).new(:trace => trace)
|
54
|
+
)
|
55
|
+
end
|
56
|
+
|
57
|
+
#
|
58
|
+
#def scope
|
59
|
+
# @scope ||= Scope.new
|
60
|
+
#end
|
61
|
+
|
62
|
+
#
|
63
|
+
def scripts
|
64
|
+
@scripts ||= demos.map{ |demo| Script.new(demo) }
|
65
|
+
end
|
66
|
+
|
67
|
+
#
|
68
|
+
def observers
|
69
|
+
[reporter]
|
70
|
+
end
|
71
|
+
|
72
|
+
# Run session.
|
73
|
+
def run
|
74
|
+
#profile.before_session(self)
|
75
|
+
reporter.before_session(self)
|
76
|
+
#demos.each do |demo|
|
77
|
+
# script = Script.new(demo, report)
|
78
|
+
scripts.each do |script|
|
79
|
+
script.run(*observers)
|
80
|
+
end
|
81
|
+
reporter.after_session(self)
|
82
|
+
#profile.after_session(self)
|
83
|
+
end
|
84
|
+
|
85
|
+
# Globally applicable advice.
|
86
|
+
#def environment
|
87
|
+
# scripts.each do |script|
|
88
|
+
# script.require_environment
|
89
|
+
# end
|
90
|
+
#end
|
91
|
+
|
92
|
+
end#class Session
|
93
|
+
|
94
|
+
end#module QED
|
95
|
+
|
@@ -0,0 +1,76 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
module QEDoc
|
4
|
+
|
5
|
+
require 'optparse'
|
6
|
+
require 'qedoc/document'
|
7
|
+
|
8
|
+
class Command
|
9
|
+
|
10
|
+
#
|
11
|
+
def self.run
|
12
|
+
new.run
|
13
|
+
end
|
14
|
+
|
15
|
+
#
|
16
|
+
attr :options
|
17
|
+
|
18
|
+
#
|
19
|
+
def initialize
|
20
|
+
@options = {}
|
21
|
+
end
|
22
|
+
|
23
|
+
#
|
24
|
+
def parser
|
25
|
+
OptionParser.new do |usage|
|
26
|
+
|
27
|
+
usage.banner = "Usage: qedoc [OPTIONS] <QEDFile1> [ <QEDFile2> ... ]"
|
28
|
+
|
29
|
+
usage.on("-o", "--output [DIR]", "Output directory") do |dir|
|
30
|
+
options[:output]= dir
|
31
|
+
end
|
32
|
+
|
33
|
+
usage.on("-t", "--title [TITLE]", "Title of Document") do |title|
|
34
|
+
options[:title]= title
|
35
|
+
end
|
36
|
+
|
37
|
+
usage.on("--css [URI]", "Specify a URI for a CSS file add to HTML header.") do |uri|
|
38
|
+
options[:css] = uri
|
39
|
+
end
|
40
|
+
|
41
|
+
usage.on("--dryrun", "") do
|
42
|
+
options[:dryrun] = true
|
43
|
+
end
|
44
|
+
|
45
|
+
usage.on("-q", "--quiet", "") do
|
46
|
+
options[:quiet] = true
|
47
|
+
end
|
48
|
+
|
49
|
+
usage.on_tail("-h", "--help", "display this help message") do
|
50
|
+
puts usage
|
51
|
+
exit
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
#
|
58
|
+
def run
|
59
|
+
parser.parse!
|
60
|
+
|
61
|
+
options[:paths] = ARGV.dup
|
62
|
+
|
63
|
+
#opts[:output] = cli.options[:file]
|
64
|
+
#opts[:dryrun] = cli.options[:dryrun]
|
65
|
+
#opts[:quiet] = cli.options[:quiet]
|
66
|
+
#opts[:css] = cli.options[:css]
|
67
|
+
#opts[:title] = cli.options[:title]
|
68
|
+
|
69
|
+
doc = QED::Document.new(options)
|
70
|
+
|
71
|
+
doc.generate
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'erb'
|
2
2
|
require 'fileutils'
|
3
|
+
require 'tilt'
|
4
|
+
require 'nokogiri'
|
3
5
|
|
4
6
|
module QED
|
5
7
|
|
@@ -59,8 +61,8 @@ module QED
|
|
59
61
|
def generate
|
60
62
|
copy_support_files
|
61
63
|
|
62
|
-
|
63
|
-
files
|
64
|
+
output = ''
|
65
|
+
files = []
|
64
66
|
|
65
67
|
#paths.each do |path|
|
66
68
|
# files.concat(Dir.glob(path).select{ |f| File.file?(f) })
|
@@ -79,13 +81,18 @@ module QED
|
|
79
81
|
#iotext = strio.string
|
80
82
|
#strio.close
|
81
83
|
|
82
|
-
ext = File.extname(file)
|
83
|
-
txt = File.read(file)
|
84
|
+
#ext = File.extname(file)
|
85
|
+
#txt = File.read(file)
|
84
86
|
|
85
|
-
if ext == '.qed'
|
86
|
-
|
87
|
-
end
|
87
|
+
#if ext == '.qed'
|
88
|
+
# ext = file_type(txt)
|
89
|
+
#end
|
90
|
+
|
91
|
+
text = Tilt.new(file).render
|
92
|
+
html = Nokogiri::HTML(text)
|
93
|
+
body = html.css("body")
|
88
94
|
|
95
|
+
=begin
|
89
96
|
case ext
|
90
97
|
#when '.qed'
|
91
98
|
# require_qedoc
|
@@ -101,10 +108,12 @@ module QED
|
|
101
108
|
markdown = RDiscount.new(txt)
|
102
109
|
text << markdown.to_html
|
103
110
|
end
|
104
|
-
|
111
|
+
=end
|
112
|
+
|
113
|
+
output << "#{body}\n"
|
105
114
|
end
|
106
115
|
|
107
|
-
temp = Template.new(template,
|
116
|
+
temp = Template.new(template, output, title, css)
|
108
117
|
html = temp.parse_template
|
109
118
|
|
110
119
|
save(html)
|
@@ -146,19 +155,19 @@ module QED
|
|
146
155
|
private
|
147
156
|
|
148
157
|
#
|
149
|
-
def file_type(text)
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
end
|
158
|
+
#def file_type(text)
|
159
|
+
# rdoc = text.index(/^\=/)
|
160
|
+
# markdown = text.index(/^\#/)
|
161
|
+
# if markdown && rdoc
|
162
|
+
# rdoc < markdown ? '.rdoc' : '.markdown'
|
163
|
+
# elsif rdoc
|
164
|
+
# '.rdoc'
|
165
|
+
# elsif markdown
|
166
|
+
# '.markdown'
|
167
|
+
# else # fallback to rdoc
|
168
|
+
# '.rdoc'
|
169
|
+
# end
|
170
|
+
#end
|
162
171
|
|
163
172
|
#
|
164
173
|
def require_qedoc
|
File without changes
|
File without changes
|
File without changes
|
data/meta/version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
2.0.0
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 2
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
version: 2.0.0
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Thomas Sawyer <transfire@gmail.com>
|
@@ -9,39 +14,69 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-04-07 00:00:00 -04:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: ae
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
23
29
|
version: "0"
|
24
|
-
|
30
|
+
type: :runtime
|
31
|
+
version_requirements: *id001
|
25
32
|
- !ruby/object:Gem::Dependency
|
26
33
|
name: ansi
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
34
|
+
prerelease: false
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
39
|
+
segments:
|
40
|
+
- 0
|
33
41
|
version: "0"
|
34
|
-
|
42
|
+
type: :runtime
|
43
|
+
version_requirements: *id002
|
35
44
|
- !ruby/object:Gem::Dependency
|
36
45
|
name: facets
|
46
|
+
prerelease: false
|
47
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
segments:
|
52
|
+
- 0
|
53
|
+
version: "0"
|
37
54
|
type: :runtime
|
38
|
-
|
39
|
-
|
55
|
+
version_requirements: *id003
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: tilt
|
58
|
+
prerelease: false
|
59
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
version: "0"
|
66
|
+
type: :runtime
|
67
|
+
version_requirements: *id004
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: nokogiri
|
70
|
+
prerelease: false
|
71
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
40
72
|
requirements:
|
41
73
|
- - ">="
|
42
74
|
- !ruby/object:Gem::Version
|
75
|
+
segments:
|
76
|
+
- 0
|
43
77
|
version: "0"
|
44
|
-
|
78
|
+
type: :runtime
|
79
|
+
version_requirements: *id005
|
45
80
|
description: |-
|
46
81
|
QED (Quality Ensured Demonstrations) is a TDD/BDD framework
|
47
82
|
utilizing Literate Programming techniques.
|
@@ -56,30 +91,30 @@ extra_rdoc_files: []
|
|
56
91
|
files:
|
57
92
|
- bin/qed
|
58
93
|
- bin/qedoc
|
59
|
-
- demo/
|
60
|
-
- demo/
|
61
|
-
- demo/03_site.qed
|
62
|
-
- demo/data.txt
|
63
|
-
- demo/helpers/sample.rb
|
64
|
-
- demo/table.yml
|
94
|
+
- demo/error.rdoc
|
95
|
+
- demo/website.rdoc
|
65
96
|
- doc/qedoc/index.html
|
66
97
|
- doc/qedoc/jquery.js
|
98
|
+
- lib/qed/advice/events.rb
|
99
|
+
- lib/qed/advice/patterns.rb
|
100
|
+
- lib/qed/advice.rb
|
67
101
|
- lib/qed/command.rb
|
68
102
|
- lib/qed/config.rb
|
69
|
-
- lib/qed/
|
70
|
-
- lib/qed/document/markup.rb
|
71
|
-
- lib/qed/document/template.rhtml
|
72
|
-
- lib/qed/document.rb
|
73
|
-
- lib/qed/extract.rb
|
103
|
+
- lib/qed/evaluator.rb
|
74
104
|
- lib/qed/reporter/base.rb
|
75
|
-
- lib/qed/reporter/
|
105
|
+
- lib/qed/reporter/bullet.rb
|
76
106
|
- lib/qed/reporter/dotprogress.rb
|
77
|
-
- lib/qed/reporter/
|
107
|
+
- lib/qed/reporter/html.rb
|
78
108
|
- lib/qed/reporter/verbatim.rb
|
79
|
-
- lib/qed/
|
109
|
+
- lib/qed/scope.rb
|
80
110
|
- lib/qed/script.rb
|
81
|
-
- lib/qed/
|
111
|
+
- lib/qed/session.rb
|
82
112
|
- lib/qed.rb
|
113
|
+
- lib/qedoc/command.rb
|
114
|
+
- lib/qedoc/document/jquery.js
|
115
|
+
- lib/qedoc/document/markup.rb
|
116
|
+
- lib/qedoc/document/template.rhtml
|
117
|
+
- lib/qedoc/document.rb
|
83
118
|
- meta/authors
|
84
119
|
- meta/created
|
85
120
|
- meta/description
|
@@ -94,7 +129,7 @@ files:
|
|
94
129
|
- meta/version
|
95
130
|
- README.rdoc
|
96
131
|
- HISTORY
|
97
|
-
-
|
132
|
+
- CHANGELOG.txt
|
98
133
|
- COPYING
|
99
134
|
has_rdoc: true
|
100
135
|
homepage: http://proutils.github.com/qed
|
@@ -103,27 +138,29 @@ licenses: []
|
|
103
138
|
post_install_message:
|
104
139
|
rdoc_options:
|
105
140
|
- --title
|
106
|
-
-
|
141
|
+
- QED API
|
107
142
|
require_paths:
|
108
143
|
- lib
|
109
144
|
required_ruby_version: !ruby/object:Gem::Requirement
|
110
145
|
requirements:
|
111
146
|
- - ">="
|
112
147
|
- !ruby/object:Gem::Version
|
148
|
+
segments:
|
149
|
+
- 0
|
113
150
|
version: "0"
|
114
|
-
version:
|
115
151
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
152
|
requirements:
|
117
153
|
- - ">="
|
118
154
|
- !ruby/object:Gem::Version
|
155
|
+
segments:
|
156
|
+
- 0
|
119
157
|
version: "0"
|
120
|
-
version:
|
121
158
|
requirements: []
|
122
159
|
|
123
160
|
rubyforge_project: qed
|
124
|
-
rubygems_version: 1.3.
|
161
|
+
rubygems_version: 1.3.6
|
125
162
|
signing_key:
|
126
163
|
specification_version: 3
|
127
|
-
summary:
|
164
|
+
summary: Quod Erat Demonstrandum
|
128
165
|
test_files: []
|
129
166
|
|