qed 1.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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