rubydoctest 1.0.0 → 1.1.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/.gemtest ADDED
File without changes
data/Manifest.txt CHANGED
@@ -4,7 +4,6 @@ Manifest.txt
4
4
  PostInstall.txt
5
5
  README.txt
6
6
  Rakefile
7
- Ruby DocTest.tmproj
8
7
  bin/rubydoctest
9
8
  config/hoe.rb
10
9
  config/requirements.rb
data/bin/rubydoctest CHANGED
@@ -1,51 +1,101 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- if ARGV.empty?
3
+ require 'rbconfig'
4
+ RUBY = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']).sub(/.*\s.*/m, '"\&"')
5
+
6
+ options, files = ARGV.partition{ |a| a =~ /^-/ }
7
+
8
+ if ARGV.empty? or options.include?("-h") or options.include?("--help")
9
+ require 'rubydoctest/version'
4
10
  puts <<-DIRECTIONS
5
- USAGE: rubydoctest [options] <files>
11
+ Ruby DocTest #{Rubydoctest::VERSION::STRING}
12
+ USAGE: rubydoctest [options] <files>
6
13
 
7
14
  rubydoctest parses Ruby files (.rb) or DocTest files (.doctest) for irb-style
8
15
  sessions in comments, and runs the commented sessions as tests.
9
16
 
10
17
  Options:
18
+ General:
19
+ --help - show this usage / help information
20
+ --single - run all tests in the same ruby environment
21
+ -t<n> - only run test number n, e.g. -t1 -t3
22
+
11
23
  Output Format:
12
24
  --html - output in HTML format
13
- --plain - force output in plain text (no Ansi colors)
25
+ --plain - force output in plain text (no Ansi colors) [windows default]
14
26
 
15
27
  Debug:
16
28
  --ignore-interactive - do not heed !!! special directives
17
29
  --trace - turn backtrace on to debug Ruby DocTest
18
30
  --debugger - include ruby-debug library / gem
31
+ --verbose - print more (useful only with --plain)
32
+ --require=</path/to/require>,</another/path/to/require> - eg. --require=config/environment.rb
19
33
 
20
34
  See http://github.com/tablatom/rubydoctest/wikis for more information.
21
35
  DIRECTIONS
22
36
  exit 0
23
37
  end
24
38
 
25
- options, files = ARGV.partition{ |a| a =~ /^--/ }
39
+ single = options.include?("--single")
26
40
 
27
41
  requires = ['rubygems', File.dirname(__FILE__) + "/../lib/rubydoctest"]
28
42
  requires << 'ruby-debug' if options.include?("--debugger")
43
+
44
+ if options.detect {|opt| opt =~ /^--require=(.+)/}
45
+ requires << $1.split(",")
46
+ end
47
+
29
48
  ruby_lines = []
30
49
  ruby_lines << "RubyDocTest.trace = true;" if options.include?("--trace")
50
+ ruby_lines << "RubyDocTest.verbose = true;" if options.include?("--verbose") or options.include?("-v")
31
51
  ruby_lines << "RubyDocTest.ignore_interactive = true;" if options.include?("--ignore-interactive")
32
52
 
53
+ tests = options.map{ |o| o =~ /^-t(\d+)/; $1 }.compact
54
+ ruby_lines << "RubyDocTest.tests = #{tests.inspect};" if tests.size > 0
55
+
33
56
  requires = requires.map {|lib| "require '#{lib}'; "}.join
34
57
 
35
- def files_runner(command, files, requires, lines)
36
- files.reverse_each do |f|
37
- system %(#{command} -e "#{requires} #{lines.join(" ")} RubyDocTest::Runner.new(File.read('#{f}'), '#{f}').run")
58
+ def files_runner(command, files, requires, lines, single)
59
+ preamble = <<END_CMD
60
+ #{requires} #{lines.join(" ")}
61
+
62
+ module Kernel
63
+ # IRB redefines exit
64
+ alias_method :our_exit, :exit
65
+ end
66
+
67
+ END_CMD
68
+ if single
69
+ cmd = preamble + "our_exit("
70
+ cmd << files.reverse.map do |f|
71
+ %(RubyDocTest::Runner.new(File.read('#{f}'), '#{f}').run )
72
+ end.join("&& ")
73
+ cmd << "? 0 : 1)"
74
+ if ! system(%(#{command} -e "#{cmd}"))
75
+ exit(1)
76
+ end
77
+ else
78
+ files.reverse.detect do |f|
79
+ cmd = preamble + <<END_CMD2
80
+ our_exit(RubyDocTest::Runner.new(File.read('#{f}'), '#{f}').run ? 0 : 1)
81
+ END_CMD2
82
+
83
+ if ! system(%(#{command} -e "#{cmd}"))
84
+ exit(1)
85
+ end
86
+ end
38
87
  end
39
88
  end
40
89
 
41
- if options.include?("--plain")
90
+ if options.include?("--plain") or RUBY_PLATFORM =~ /mswin|mingw/
42
91
  ruby_lines << "RubyDocTest.output_format = :plain;"
43
- files_runner("ruby", files, requires, ruby_lines)
92
+ files_runner(RUBY, files, requires, ruby_lines, single)
44
93
  elsif options.include?("--html")
45
94
  ruby_lines << "RubyDocTest.output_format = :html;"
46
95
  puts "<html><body><pre>"
47
- files_runner("ruby", files, requires, ruby_lines)
96
+ files_runner(RUBY, files, requires, ruby_lines, single)
48
97
  puts "</pre></body></html>"
49
98
  else
50
- files_runner("ruby", files, requires, ruby_lines)
99
+ files_runner(RUBY, files, requires, ruby_lines, single)
51
100
  end
101
+ exit(0)
data/lib/lines.rb CHANGED
@@ -109,7 +109,7 @@ module RubyDocTest
109
109
  # => " # "
110
110
  def indentation(doc_lines = @doc_lines, line_index = @line_index)
111
111
  if doc_lines[line_index]
112
- doc_lines[line_index][/^(\s*#\s*|\s*)(\?>\s)?/]
112
+ doc_lines[line_index][/^(\s*#\s*|\s*)(\?>\s?)?/]
113
113
  else
114
114
  ""
115
115
  end
@@ -140,4 +140,4 @@ module RubyDocTest
140
140
  doc_lines[start_index..-1]
141
141
  end
142
142
  end
143
- end
143
+ end
data/lib/rubydoctest.rb CHANGED
@@ -7,7 +7,7 @@ require "runner"
7
7
  module RubyDocTest
8
8
 
9
9
  class << self
10
- attr_accessor :trace, :ignore_interactive
10
+ attr_accessor :trace, :ignore_interactive, :tests, :verbose
11
11
  attr_writer :output_format
12
12
 
13
13
  def output_format
@@ -1,8 +1,8 @@
1
1
  module Rubydoctest #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
- MINOR = 0
5
- TINY = 0
4
+ MINOR = 1
5
+ TINY = 3
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/lib/runner.rb CHANGED
@@ -106,16 +106,25 @@ module RubyDocTest
106
106
  @@color[RubyDocTest.output_format][color] % text.to_s
107
107
  end
108
108
 
109
+ def escape(text)
110
+ case RubyDocTest.output_format
111
+ when :html
112
+ text.gsub("<", "&lt;").gsub(">", "&gt;")
113
+ else
114
+ text
115
+ end
116
+ end
117
+
109
118
  def run
110
119
  prepare_tests
111
- newline = "\n "
120
+ newline = "\n "
112
121
  everything_passed = true
113
122
  puts "=== Testing '#{@file_name}'..."
114
123
  ok, fail, err = 0, 0, 0
115
- @tests.each do |t|
124
+ @tests.each_with_index do |t, index|
116
125
  if SpecialDirective === t and t.name == "!!!"
117
126
  start_irb unless RubyDocTest.ignore_interactive
118
- else
127
+ elsif RubyDocTest.tests.nil? or RubyDocTest.tests.include?(index + 1)
119
128
  begin
120
129
  if t.pass?
121
130
  ok += 1
@@ -125,26 +134,35 @@ module RubyDocTest
125
134
  fail += 1
126
135
  everything_passed = false
127
136
  status = ["FAIL".center(4), :red]
137
+
138
+ result_raw = t.first_failed.actual_result
139
+ got = if result_raw =~ /\n$/ && result_raw.count("\n") > 1
140
+ "Got: <<-__END__\n#{result_raw}__END__\n "
141
+ else
142
+ "Got: #{t.actual_result}#{newline}"
143
+ end
128
144
  detail = format_color(
129
- "Got: #{t.actual_result}#{newline}Expected: #{t.expected_result}" + newline +
145
+ "#{got}Expected: #{t.expected_result}" + newline +
130
146
  " from #{@file_name}:#{t.first_failed.result.line_number}",
131
147
  :red)
132
148
 
133
149
  end
134
150
  rescue EvaluationError => e
135
151
  err += 1
152
+ everything_passed = false
136
153
  status = ["ERR".center(4), :yellow]
137
154
  exception_text = e.original_exception.to_s.split("\n").join(newline)
138
- if RubyDocTest.output_format == :html
139
- exception_text = exception_text.gsub("<", "&lt;").gsub(">", "&gt;")
140
- end
141
155
  detail = format_color(
142
- "#{e.original_exception.class.to_s}: #{exception_text}" + newline +
156
+ "#{escape e.original_exception.class.to_s}: #{escape exception_text}" + newline +
143
157
  " from #{@file_name}:#{e.statement.line_number}" + newline +
144
158
  e.statement.source_code,
145
159
  :yellow)
160
+ if RubyDocTest.verbose
161
+ detail += format_color(newline + e.original_exception.backtrace.join("\n"), :red)
162
+ end
146
163
  end
147
164
  puts \
165
+ "#{((index + 1).to_s + ".").ljust(3)} " +
148
166
  "#{format_color(*status)} | " +
149
167
  "#{t.description.split("\n").join(newline)}" +
150
168
  (detail ? newline + detail : "")
@@ -292,18 +310,27 @@ module RubyDocTest
292
310
  current_statements = []
293
311
  when SpecialDirective
294
312
  case g.name
295
- when "doctest:"
313
+ when "doctest:", "it:"
296
314
  blocks << CodeBlock.new(current_statements) unless current_statements.empty?
297
315
  current_statements = []
316
+ blocks << g
298
317
  when "doctest_require:"
299
318
  doctest_require = eval(g.value, TOPLEVEL_BINDING, @file_name, g.line_number)
300
319
  if doctest_require.is_a? String
301
320
  require_relative_to_file_name(doctest_require, @file_name)
302
321
  end
322
+ blocks << g
303
323
  when "!!!"
304
324
  # ignore
325
+ unless RubyDocTest.ignore_interactive
326
+ fake_statement = Object.new
327
+ runner = self
328
+ (class << fake_statement; self; end).send(:define_method, :evaluate) do
329
+ runner.start_irb
330
+ end
331
+ current_statements << fake_statement
332
+ end
305
333
  end
306
- blocks << g
307
334
  end
308
335
  end
309
336
  blocks << CodeBlock.new(current_statements) unless current_statements.empty?
@@ -313,6 +340,9 @@ module RubyDocTest
313
340
  def require_relative_to_file_name(file_name, relative_to)
314
341
  load_path = $:.dup
315
342
  $:.unshift File.expand_path(File.join(File.dirname(relative_to), File.dirname(file_name)))
343
+ if RubyDocTest.verbose
344
+ puts "doctest_require: [#{File.expand_path(File.join(File.dirname(relative_to), File.dirname(file_name)))}] #{File.basename(file_name)}"
345
+ end
316
346
  require File.basename(file_name)
317
347
  ensure
318
348
  $:.shift
@@ -345,6 +375,18 @@ module RubyDocTest
345
375
  #
346
376
  # >> r.tests.first.code_blocks.size
347
377
  # => 2
378
+ #
379
+ # doctest: When using the "it:" directive, it should re-append "it" to the description;
380
+ # >> r = RubyDocTest::Runner.new("it: should behave\n>> t = 1\n>> t + 2\n=> 3\n>> u = 1", "test.doctest")
381
+ # >> r.prepare_tests
382
+ # >> r.tests.size
383
+ # => 1
384
+ #
385
+ # >> r.tests.first.description
386
+ # => "it should behave"
387
+ #
388
+ # >> r.tests.first.code_blocks.size
389
+ # => 2
348
390
  def organize_tests(blocks = @blocks)
349
391
  tests = []
350
392
  assigned_blocks = nil
@@ -358,6 +400,9 @@ module RubyDocTest
358
400
  when "doctest:"
359
401
  assigned_blocks = []
360
402
  tests << Test.new(g.value, assigned_blocks)
403
+ when "it:"
404
+ assigned_blocks = []
405
+ tests << Test.new("it #{g.value}", assigned_blocks)
361
406
  when "!!!"
362
407
  tests << g
363
408
  end
@@ -5,7 +5,7 @@ require 'lines'
5
5
 
6
6
  module RubyDocTest
7
7
  class SpecialDirective < Lines
8
- NAMES = ["doctest:", "!!!", "doctest_require:"]
8
+ NAMES = ["doctest:", "it:", "!!!", "doctest_require:"]
9
9
  NAMES_FOR_RX = NAMES.map{ |n| Regexp.escape(n) }.join("|")
10
10
 
11
11
  # === Test
@@ -14,6 +14,11 @@ module RubyDocTest
14
14
  # >> s = RubyDocTest::SpecialDirective.new(["doctest: Testing Stuff", "Other Stuff"])
15
15
  # >> s.name
16
16
  # => "doctest:"
17
+ #
18
+ # doctest: "it:" is a valid directive
19
+ # >> s = RubyDocTest::SpecialDirective.new(["it: should test stuff"])
20
+ # >> s.name
21
+ # => "it:"
17
22
  def name
18
23
  if m = lines.first.match(/^#{Regexp.escape(indentation)}(#{NAMES_FOR_RX})/)
19
24
  m[1]
@@ -35,6 +40,11 @@ module RubyDocTest
35
40
  # >> s = RubyDocTest::SpecialDirective.new(["doctest: Testing Stuff", " On Two Lines"])
36
41
  # >> s.value
37
42
  # => "Testing Stuff\nOn Two Lines"
43
+ #
44
+ # doctest: "it" should also work as a directive
45
+ # >> s = RubyDocTest::SpecialDirective.new(["it: should do something"])
46
+ # >> s.value
47
+ # => "should do something"
38
48
  def value
39
49
  if m = lines.join("\n").match(/^#{Regexp.escape(indentation)}(#{NAMES_FOR_RX})(.*)/m)
40
50
  m[2].strip
data/lib/statement.rb CHANGED
@@ -62,8 +62,14 @@ module RubyDocTest
62
62
  # => :ok
63
63
  def evaluate
64
64
  sc = source_code.gsub("__FILE__", @file_name.inspect)
65
- # puts "EVAL: #{sc}"
65
+ if RubyDocTest.verbose
66
+ puts "EVAL: #{sc}"
67
+ end
66
68
  @actual_result = eval(sc, TOPLEVEL_BINDING, __FILE__, __LINE__)
69
+ if RubyDocTest.verbose
70
+ puts "RESULT: #{@actual_result}"
71
+ end
72
+ @actual_result
67
73
  rescue Exception => e
68
74
  if RubyDocTest.trace
69
75
  raise e.class, e.to_s + "\n" + e.backtrace.first
data/rubydoctest.gemspec CHANGED
@@ -1,18 +1,58 @@
1
1
  Gem::Specification.new do |s|
2
- s.name = %q{rubydoctest}
3
- s.version = "1.0.0"
2
+ s.name = "rubydoctest"
3
+ s.version = "1.1.3"
4
4
 
5
5
  s.specification_version = 2 if s.respond_to? :specification_version=
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Duane Johnson", "Tom Locke", "Dr Nic Williams"]
9
- s.date = %q{2008-06-21}
10
- s.default_executable = %q{rubydoctest}
11
- s.description = %q{Ruby version of Python's doctest tool, but a bit different.}
9
+ s.date = "2008-12-06"
10
+ s.default_executable = "rubydoctest"
11
+ s.description = "Ruby version of Python's doctest tool, but a bit different."
12
12
  s.email = ["duane.johnson@gmail.com"]
13
13
  s.executables = ["rubydoctest"]
14
14
  s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "website/index.txt"]
15
- s.files = IO.read("Manifest.txt").split("\n")
15
+ manifest = <<-MANIFEST
16
+ History.txt
17
+ License.txt
18
+ Manifest.txt
19
+ PostInstall.txt
20
+ README.txt
21
+ Rakefile
22
+ bin/rubydoctest
23
+ config/hoe.rb
24
+ config/requirements.rb
25
+ lib/code_block.rb
26
+ lib/doctest_require.rb
27
+ lib/lines.rb
28
+ lib/result.rb
29
+ lib/rubydoctest.rb
30
+ lib/rubydoctest/version.rb
31
+ lib/runner.rb
32
+ lib/special_directive.rb
33
+ lib/statement.rb
34
+ lib/test.rb
35
+ rubydoctest.gemspec
36
+ script/console
37
+ script/destroy
38
+ script/generate
39
+ script/rstakeout
40
+ script/txt2html
41
+ setup.rb
42
+ tasks/deployment.rake
43
+ tasks/doctests.rake
44
+ tasks/environment.rake
45
+ tasks/website.rake
46
+ textmate/DocTest (Markdown).textmate
47
+ textmate/DocTest (Ruby).textmate
48
+ textmate/DocTest (Text).textmate
49
+ website/index.html
50
+ website/index.txt
51
+ website/javascripts/rounded_corners_lite.inc.js
52
+ website/stylesheets/screen.css
53
+ website/template.html.erb
54
+ MANIFEST
55
+ s.files = manifest.strip.split("\n").map{|m| m.strip}
16
56
  s.has_rdoc = true
17
57
  s.homepage = %q{http://rubydoctest.rubyforge.org}
18
58
  s.post_install_message = %q{
data/script/console CHANGED
File without changes
data/script/destroy CHANGED
File without changes
data/script/generate CHANGED
File without changes
data/script/rstakeout CHANGED
File without changes
data/script/txt2html CHANGED
File without changes
data/tasks/doctests.rake CHANGED
@@ -1,8 +1,9 @@
1
1
  namespace :test do
2
2
  desc "Run doctests"
3
3
  task :doctest do
4
- sh "ruby #{File.dirname(__FILE__)}/../bin/rubydoctest #{File.dirname(__FILE__)}/../lib/*.rb"
5
- sh "ruby #{File.dirname(__FILE__)}/../bin/rubydoctest #{File.dirname(__FILE__)}/../doc/*.doctest"
4
+ system("ruby #{File.dirname(__FILE__)}/../bin/rubydoctest #{File.dirname(__FILE__)}/../lib/*.rb") &&
5
+ system("ruby #{File.dirname(__FILE__)}/../bin/rubydoctest #{File.dirname(__FILE__)}/../doc/*.doctest")
6
+ exit($?.exitstatus)
6
7
  end
7
8
 
8
9
  namespace :doctest do
@@ -26,4 +27,4 @@ namespace :test do
26
27
  sh "ruby #{File.dirname(__FILE__)}/../bin/rubydoctest #{tests}"
27
28
  end
28
29
  end
29
- end
30
+ end
@@ -31,6 +31,16 @@
31
31
  3 = { name = 'keyword.ruby.doctest'; };
32
32
  };
33
33
  patterns = (
34
+ {
35
+ begin = '^([ \t]*(#)\s+)';
36
+ end = '\n';
37
+ captures = {
38
+ 2 = { name = 'comment.line.number-sign.ruby'; };
39
+ };
40
+ patterns = (
41
+ { include = 'source.ruby.rails'; }
42
+ );
43
+ },
34
44
  { include = 'source.ruby.rails'; }
35
45
  );
36
46
  },
data/website/index.html CHANGED
@@ -5,7 +5,7 @@
5
5
  <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
7
  <title>
8
- rubydoctest
8
+ Ruby DocTest
9
9
  </title>
10
10
  <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
11
11
  <style>
@@ -30,7 +30,7 @@
30
30
  <body>
31
31
  <div id="main">
32
32
 
33
- <h1>rubydoctest</h1>
33
+ <h1>Ruby DocTest</h1>
34
34
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/rubydoctest"; return false'>
35
35
  <p>Get Version</p>
36
36
  <a href="http://rubyforge.org/projects/rubydoctest" class="numbers">1.0.0</a>
@@ -41,82 +41,35 @@
41
41
  <h2>What</h2>
42
42
 
43
43
 
44
- <h2>Installing</h2>
45
-
46
-
47
- <p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">rubydoctest</span></pre></p>
44
+ <p>Ruby DocTest is a tool that lets you put irb-style tests in your documentation. It’s similar to Python’s doctest, but different in several ways.</p>
48
45
 
49
46
 
50
- <h2>The basics</h2>
51
-
52
-
53
- <h2>Demonstration of usage</h2>
47
+ <h2>Installing</h2>
54
48
 
55
49
 
56
- <h2>Forum</h2>
50
+ <p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">rubydoctest</span></pre></p>
57
51
 
58
52
 
59
- <p><a href="http://groups.google.com/group/rubydoctest">http://groups.google.com/group/rubydoctest</a></p>
53
+ <h2>Wiki, Documentation, Examples</h2>
60
54
 
61
55
 
62
- <p><span class="caps">TODO</span> &#8211; create Google Group &#8211; rubydoctest</p>
56
+ <p>See the <a href="http://github.com/tablatom/rubydoctest/wikis">github wiki</a></p>
63
57
 
64
58
 
65
59
  <h2>How to submit patches</h2>
66
60
 
67
61
 
68
- <p>Read the <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/">8 steps for fixing other people&#8217;s code</a> and for section <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups">8b: Submit patch to Google Groups</a>, use the Google Group above.</p>
69
-
70
-
71
- <p><span class="caps">TODO</span> &#8211; pick <span class="caps">SVN</span> or Git instructions</p>
72
-
73
-
74
- <p>The trunk repository is <code>svn://rubyforge.org/var/svn/rubydoctest/trunk</code> for anonymous access.</p>
75
-
76
-
77
- <p><span class="caps">OOOORRRR</span></p>
78
-
79
-
80
- <p>You can fetch the source from either:</p>
81
-
82
-
83
- <ul>
84
- <li>rubyforge: <span class="caps">MISSING IN ACTION</span></li>
85
- </ul>
86
-
87
-
88
- <p><span class="caps">TODO</span> &#8211; You can not created a RubyForge project, OR have not run <code>rubyforge config</code>
89
- yet to refresh your local rubyforge data with this projects&#8217; id information.</p>
90
-
91
-
92
- <p>When you do this, this message will magically disappear!</p>
93
-
94
-
95
- <p>Or you can hack website/index.txt and make it all go away!!</p>
96
-
97
-
98
- <ul>
99
- <li>github: <a href="http://github.com/GITHUB_USERNAME/rubydoctest/tree/master">http://github.com/GITHUB_USERNAME/rubydoctest/tree/master</a></li>
100
- </ul>
101
-
102
-
103
- <pre>git clone git://github.com/GITHUB_USERNAME/rubydoctest.git</pre>
104
-
105
- <p><span class="caps">TODO</span> &#8211; add &#8220;github_username: username&#8221; to ~/.rubyforge/user-config.yml and newgem will reuse it for future projects.</p>
106
-
62
+ <p>Read the <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/">8 steps for fixing other people&#8217;s code</a>.</p>
107
63
 
108
- <ul>
109
- <li>gitorious: <a href="git://gitorious.org/rubydoctest/mainline.git">git://gitorious.org/rubydoctest/mainline.git</a></li>
110
- </ul>
111
64
 
65
+ <p>The git repository is <code>http://github.com/tablatom/rubydoctest/tree/master</code> for anonymous access.</p>
112
66
 
113
- <pre>git clone git://gitorious.org/rubydoctest/mainline.git</pre>
114
67
 
115
68
  <h3>Build and test instructions</h3>
116
69
 
117
70
 
118
71
  <pre>cd rubydoctest
119
- rake test
72
+ rake test:doctest
120
73
  rake install_gem</pre>
121
74
 
122
75
  <h2>License</h2>
@@ -128,9 +81,9 @@ rake install_gem</pre>
128
81
  <h2>Contact</h2>
129
82
 
130
83
 
131
- <p>Comments are welcome. Send an email to <a href="mailto:FIXME"><span class="caps">FIXME</span> full name</a> email via the <a href="http://groups.google.com/group/rubydoctest">forum</a></p>
84
+ <p>Comments are welcome. Send an email to <a href="mailto:duane.johnson@gmail.com">Duane Johnson</a>.</p>
132
85
  <p class="coda">
133
- <a href="mailto:duane.johnson@gmail.com">Duane Johnson</a>, 17th June 2008<br>
86
+ <a href="mailto:duane.johnson@gmail.com">Duane Johnson</a>, 23rd June 2008<br>
134
87
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
135
88
  </p>
136
89
  </div>
data/website/index.txt CHANGED
@@ -1,83 +1,37 @@
1
- h1. rubydoctest
1
+ h1. Ruby DocTest
2
2
 
3
3
  h1. &#x2192; 'rubydoctest'
4
4
 
5
5
 
6
6
  h2. What
7
7
 
8
+ Ruby DocTest is a tool that lets you put irb-style tests in your documentation. It’s similar to Python’s doctest, but different in several ways.
8
9
 
9
10
  h2. Installing
10
11
 
11
12
  <pre syntax="ruby">sudo gem install rubydoctest</pre>
12
13
 
13
- h2. The basics
14
+ h2. Wiki, Documentation, Examples
14
15
 
15
-
16
- h2. Demonstration of usage
17
-
18
-
19
-
20
- h2. Forum
21
-
22
- "http://groups.google.com/group/rubydoctest":http://groups.google.com/group/rubydoctest
23
-
24
- TODO - create Google Group - rubydoctest
16
+ See the "github wiki":http://github.com/tablatom/rubydoctest/wikis
25
17
 
26
18
  h2. How to submit patches
27
19
 
28
- Read the "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/ and for section "8b: Submit patch to Google Groups":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups, use the Google Group above.
29
-
30
- TODO - pick SVN or Git instructions
31
-
32
- The trunk repository is <code>svn://rubyforge.org/var/svn/rubydoctest/trunk</code> for anonymous access.
33
-
34
- OOOORRRR
35
-
36
- You can fetch the source from either:
37
-
38
- <% if rubyforge_project_id %>
39
-
40
- * rubyforge: "http://rubyforge.org/scm/?group_id=<%= rubyforge_project_id %>":http://rubyforge.org/scm/?group_id=<%= rubyforge_project_id %>
41
-
42
- <pre>git clone git://rubyforge.org/rubydoctest.git</pre>
20
+ Read the "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/.
43
21
 
44
- <% else %>
45
-
46
- * rubyforge: MISSING IN ACTION
47
-
48
- TODO - You can not created a RubyForge project, OR have not run <code>rubyforge config</code>
49
- yet to refresh your local rubyforge data with this projects' id information.
50
-
51
- When you do this, this message will magically disappear!
52
-
53
- Or you can hack website/index.txt and make it all go away!!
54
-
55
- <% end %>
56
-
57
- * github: "http://github.com/GITHUB_USERNAME/rubydoctest/tree/master":http://github.com/GITHUB_USERNAME/rubydoctest/tree/master
58
-
59
- <pre>git clone git://github.com/GITHUB_USERNAME/rubydoctest.git</pre>
60
-
61
-
62
- TODO - add "github_username: username" to ~/.rubyforge/user-config.yml and newgem will reuse it for future projects.
63
-
64
-
65
- * gitorious: "git://gitorious.org/rubydoctest/mainline.git":git://gitorious.org/rubydoctest/mainline.git
66
-
67
- <pre>git clone git://gitorious.org/rubydoctest/mainline.git</pre>
22
+ The git repository is <code>http://github.com/tablatom/rubydoctest/tree/master</code> for anonymous access.
68
23
 
69
24
  h3. Build and test instructions
70
25
 
71
26
  <pre>cd rubydoctest
72
- rake test
27
+ rake test:doctest
73
28
  rake install_gem</pre>
74
29
 
75
-
76
30
  h2. License
77
31
 
78
32
  This code is free to use under the terms of the MIT license.
79
33
 
80
34
  h2. Contact
81
35
 
82
- Comments are welcome. Send an email to "FIXME full name":mailto:FIXME email via the "forum":http://groups.google.com/group/rubydoctest
36
+ Comments are welcome. Send an email to "Duane Johnson":mailto:duane.johnson@gmail.com.
83
37
 
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubydoctest
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ hash: 21
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 1
9
+ - 3
10
+ version: 1.1.3
5
11
  platform: ruby
6
12
  authors:
7
13
  - Duane Johnson
@@ -11,10 +17,25 @@ autorequire:
11
17
  bindir: bin
12
18
  cert_chain: []
13
19
 
14
- date: 2008-06-23 00:00:00 -06:00
20
+ date: 2011-02-27 00:00:00 -05:00
15
21
  default_executable:
16
- dependencies: []
17
-
22
+ dependencies:
23
+ - !ruby/object:Gem::Dependency
24
+ name: hoe
25
+ prerelease: false
26
+ requirement: &id001 !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ hash: 41
32
+ segments:
33
+ - 2
34
+ - 9
35
+ - 1
36
+ version: 2.9.1
37
+ type: :development
38
+ version_requirements: *id001
18
39
  description: Ruby version of Python's doctest tool, but a bit different.
19
40
  email: duane.johnson@gmail.com
20
41
  executables:
@@ -35,7 +56,6 @@ files:
35
56
  - PostInstall.txt
36
57
  - README.txt
37
58
  - Rakefile
38
- - Ruby DocTest.tmproj
39
59
  - bin/rubydoctest
40
60
  - config/hoe.rb
41
61
  - config/requirements.rb
@@ -68,8 +88,11 @@ files:
68
88
  - website/javascripts/rounded_corners_lite.inc.js
69
89
  - website/stylesheets/screen.css
70
90
  - website/template.html.erb
91
+ - .gemtest
71
92
  has_rdoc: true
72
93
  homepage: http://rubydoctest.rubyforge.org
94
+ licenses: []
95
+
73
96
  post_install_message: |+
74
97
 
75
98
  rubydoctest comes as an executable that takes a list of files:
@@ -84,23 +107,29 @@ rdoc_options:
84
107
  require_paths:
85
108
  - lib
86
109
  required_ruby_version: !ruby/object:Gem::Requirement
110
+ none: false
87
111
  requirements:
88
112
  - - ">="
89
113
  - !ruby/object:Gem::Version
114
+ hash: 3
115
+ segments:
116
+ - 0
90
117
  version: "0"
91
- version:
92
118
  required_rubygems_version: !ruby/object:Gem::Requirement
119
+ none: false
93
120
  requirements:
94
121
  - - ">="
95
122
  - !ruby/object:Gem::Version
123
+ hash: 3
124
+ segments:
125
+ - 0
96
126
  version: "0"
97
- version:
98
127
  requirements: []
99
128
 
100
129
  rubyforge_project: rubydoctest
101
- rubygems_version: 1.0.1
130
+ rubygems_version: 1.4.2
102
131
  signing_key:
103
- specification_version: 2
132
+ specification_version: 3
104
133
  summary: Ruby version of Python's doctest tool, but a bit different.
105
134
  test_files: []
106
135
 
@@ -1,197 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>currentDocument</key>
6
- <string>rubydoctest.gemspec</string>
7
- <key>documents</key>
8
- <array>
9
- <dict>
10
- <key>expanded</key>
11
- <true/>
12
- <key>name</key>
13
- <string>rubydoctest</string>
14
- <key>regexFolderFilter</key>
15
- <string>!.*/(\.[^/]*|rails|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
16
- <key>sourceDirectory</key>
17
- <string></string>
18
- </dict>
19
- </array>
20
- <key>fileHierarchyDrawerWidth</key>
21
- <integer>315</integer>
22
- <key>metaData</key>
23
- <dict>
24
- <key>Manifest.txt</key>
25
- <dict>
26
- <key>caret</key>
27
- <dict>
28
- <key>column</key>
29
- <integer>0</integer>
30
- <key>line</key>
31
- <integer>0</integer>
32
- </dict>
33
- <key>firstVisibleColumn</key>
34
- <integer>0</integer>
35
- <key>firstVisibleLine</key>
36
- <integer>0</integer>
37
- </dict>
38
- <key>PostInstall.txt</key>
39
- <dict>
40
- <key>caret</key>
41
- <dict>
42
- <key>column</key>
43
- <integer>0</integer>
44
- <key>line</key>
45
- <integer>0</integer>
46
- </dict>
47
- <key>firstVisibleColumn</key>
48
- <integer>0</integer>
49
- <key>firstVisibleLine</key>
50
- <integer>0</integer>
51
- </dict>
52
- <key>Rakefile</key>
53
- <dict>
54
- <key>caret</key>
55
- <dict>
56
- <key>column</key>
57
- <integer>0</integer>
58
- <key>line</key>
59
- <integer>0</integer>
60
- </dict>
61
- <key>firstVisibleColumn</key>
62
- <integer>0</integer>
63
- <key>firstVisibleLine</key>
64
- <integer>0</integer>
65
- </dict>
66
- <key>config/hoe.rb</key>
67
- <dict>
68
- <key>caret</key>
69
- <dict>
70
- <key>column</key>
71
- <integer>73</integer>
72
- <key>line</key>
73
- <integer>64</integer>
74
- </dict>
75
- <key>columnSelection</key>
76
- <false/>
77
- <key>firstVisibleColumn</key>
78
- <integer>0</integer>
79
- <key>firstVisibleLine</key>
80
- <integer>26</integer>
81
- <key>selectFrom</key>
82
- <dict>
83
- <key>column</key>
84
- <integer>66</integer>
85
- <key>line</key>
86
- <integer>64</integer>
87
- </dict>
88
- <key>selectTo</key>
89
- <dict>
90
- <key>column</key>
91
- <integer>73</integer>
92
- <key>line</key>
93
- <integer>64</integer>
94
- </dict>
95
- </dict>
96
- <key>lib/lines.rb</key>
97
- <dict>
98
- <key>caret</key>
99
- <dict>
100
- <key>column</key>
101
- <integer>0</integer>
102
- <key>line</key>
103
- <integer>0</integer>
104
- </dict>
105
- <key>firstVisibleColumn</key>
106
- <integer>0</integer>
107
- <key>firstVisibleLine</key>
108
- <integer>0</integer>
109
- </dict>
110
- <key>lib/result.rb</key>
111
- <dict>
112
- <key>caret</key>
113
- <dict>
114
- <key>column</key>
115
- <integer>3</integer>
116
- <key>line</key>
117
- <integer>62</integer>
118
- </dict>
119
- <key>firstVisibleColumn</key>
120
- <integer>0</integer>
121
- <key>firstVisibleLine</key>
122
- <integer>16</integer>
123
- </dict>
124
- <key>lib/rubydoctest/version.rb</key>
125
- <dict>
126
- <key>caret</key>
127
- <dict>
128
- <key>column</key>
129
- <integer>13</integer>
130
- <key>line</key>
131
- <integer>3</integer>
132
- </dict>
133
- <key>firstVisibleColumn</key>
134
- <integer>0</integer>
135
- <key>firstVisibleLine</key>
136
- <integer>0</integer>
137
- </dict>
138
- <key>lib/runner.rb</key>
139
- <dict>
140
- <key>caret</key>
141
- <dict>
142
- <key>column</key>
143
- <integer>53</integer>
144
- <key>line</key>
145
- <integer>129</integer>
146
- </dict>
147
- <key>firstVisibleColumn</key>
148
- <integer>0</integer>
149
- <key>firstVisibleLine</key>
150
- <integer>0</integer>
151
- </dict>
152
- <key>rubydoctest.gemspec</key>
153
- <dict>
154
- <key>caret</key>
155
- <dict>
156
- <key>column</key>
157
- <integer>45</integer>
158
- <key>line</key>
159
- <integer>14</integer>
160
- </dict>
161
- <key>firstVisibleColumn</key>
162
- <integer>0</integer>
163
- <key>firstVisibleLine</key>
164
- <integer>0</integer>
165
- </dict>
166
- <key>tasks/deployment.rake</key>
167
- <dict>
168
- <key>caret</key>
169
- <dict>
170
- <key>column</key>
171
- <integer>0</integer>
172
- <key>line</key>
173
- <integer>0</integer>
174
- </dict>
175
- <key>firstVisibleColumn</key>
176
- <integer>0</integer>
177
- <key>firstVisibleLine</key>
178
- <integer>0</integer>
179
- </dict>
180
- </dict>
181
- <key>openDocuments</key>
182
- <array>
183
- <string>lib/runner.rb</string>
184
- <string>lib/rubydoctest/version.rb</string>
185
- <string>tasks/deployment.rake</string>
186
- <string>Manifest.txt</string>
187
- <string>PostInstall.txt</string>
188
- <string>Rakefile</string>
189
- <string>config/hoe.rb</string>
190
- <string>rubydoctest.gemspec</string>
191
- </array>
192
- <key>showFileHierarchyDrawer</key>
193
- <true/>
194
- <key>windowFrame</key>
195
- <string>{{61, 4}, {935, 874}}</string>
196
- </dict>
197
- </plist>