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.
@@ -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
- text = ''
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
- ext = file_type(txt)
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
- text << "\n"
111
+ =end
112
+
113
+ output << "#{body}\n"
105
114
  end
106
115
 
107
- temp = Template.new(template, text, title, css)
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
- rdoc = text.index(/^\=/)
151
- markdown = text.index(/^\#/)
152
- if markdown && rdoc
153
- rdoc < markdown ? '.rdoc' : '.markdown'
154
- elsif rdoc
155
- '.rdoc'
156
- elsif markdown
157
- '.markdown'
158
- else # fallback to rdoc
159
- '.rdoc'
160
- end
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/requires CHANGED
@@ -1,3 +1,5 @@
1
1
  ae
2
2
  ansi
3
3
  facets
4
+ tilt
5
+ nokogiri
data/meta/version CHANGED
@@ -1 +1 @@
1
- 1.3
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
- version: "1.3"
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-01-29 00:00:00 -05:00
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
- type: :runtime
18
- version_requirement:
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
- version:
30
+ type: :runtime
31
+ version_requirements: *id001
25
32
  - !ruby/object:Gem::Dependency
26
33
  name: ansi
27
- type: :runtime
28
- version_requirement:
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
- version:
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
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
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
- version:
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/01_spec.qed
60
- - demo/02_err.qed
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/document/jquery.js
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/ditto.rb
105
+ - lib/qed/reporter/bullet.rb
76
106
  - lib/qed/reporter/dotprogress.rb
77
- - lib/qed/reporter/summary.rb
107
+ - lib/qed/reporter/html.rb
78
108
  - lib/qed/reporter/verbatim.rb
79
- - lib/qed/runner.rb
109
+ - lib/qed/scope.rb
80
110
  - lib/qed/script.rb
81
- - lib/qed/script1.rb
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
- - Syckfile
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
- - Qed API
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.5
161
+ rubygems_version: 1.3.6
125
162
  signing_key:
126
163
  specification_version: 3
127
- summary: QED (Quality Ensured Demonstrations) is a TDD/BDD framework
164
+ summary: Quod Erat Demonstrandum
128
165
  test_files: []
129
166