From d07ef79eeb69e6643747da627c84a8b0baed18e3 Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Fri, 21 Dec 2012 11:42:19 +0100 Subject: Rename README README.rdoc --- README | 299 ---------------------------------------------------------- README.rdoc | 299 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Rakefile | 4 +- bacon.gemspec | 2 +- 4 files changed, 302 insertions(+), 302 deletions(-) delete mode 100644 README create mode 100644 README.rdoc diff --git a/README b/README deleted file mode 100644 index 92f428a..0000000 --- a/README +++ /dev/null @@ -1,299 +0,0 @@ -= Bacon -- small RSpec clone. - - "Truth will sooner come out from error than from confusion." - ---Francis Bacon - -Bacon is a small RSpec clone weighing less than 350 LoC but -nevertheless providing all essential features. - - -== Whirl-wind tour - - require 'bacon' - - describe 'A new array' do - before do - @ary = Array.new - end - - it 'should be empty' do - @ary.should.be.empty - @ary.should.not.include 1 - end - - it 'should have zero size' do - @ary.size.should.equal 0 - @ary.size.should.be.close 0.1, 0.5 - end - - it 'should raise on trying fetch any index' do - lambda { @ary.fetch 0 }. - should.raise(IndexError). - message.should.match(/out of array/) - - # Alternatively: - should.raise(IndexError) { @ary.fetch 0 } - end - - it 'should have an object identity' do - @ary.should.not.be.same_as Array.new - end - - # Custom assertions are trivial to do, they are lambdas returning a - # boolean vale: - palindrome = lambda { |obj| obj == obj.reverse } - it 'should be a palindrome' do - @ary.should.be.a palindrome - end - - it 'should have super powers' do - should.flunk "no super powers found" - end - end - -Now run it: - - $ bacon whirlwind.rb - A new array - - should be empty - - should have zero size - - should raise on trying fetch any index - - should have an object identity - - should be a palindrome - - should have super powers [FAILED] - - Bacon::Error: no super powers found - ./whirlwind.rb:39: A new array - should have super powers - ./whirlwind.rb:38 - ./whirlwind.rb:3 - - 6 specifications (9 requirements), 1 failures, 0 errors - -If you want shorter output, use the Test::Unit format: - - $ bacon -q whirlwind.rb - .....F - Bacon::Error: no super powers found - ./whirlwind.rb:39: A new array - should have super powers - ./whirlwind.rb:38 - ./whirlwind.rb:3 - - 6 tests, 9 assertions, 1 failures, 0 errors - -It also supports TAP: - - $ bacon -p whirlwind.rb - ok 1 - should be empty - ok 2 - should have zero size - ok 3 - should raise on trying fetch any index - ok 4 - should have an object identity - ok 5 - should be a palindrome - not ok 6 - should have super powers: FAILED - # Bacon::Error: no super powers found - # ./whirlwind.rb:39: A new array - should have super powers - # ./whirlwind.rb:38 - # ./whirlwind.rb:3 - 1..6 - # 6 tests, 9 assertions, 1 failures, 0 errors - - $ bacon -p whirlwind.rb | taptap -q - Tests took 0.00 seconds. - FAILED tests 6 - 6) should have super powers: FAILED - - Failed 1/6 tests, 83.33% okay. - -(taptap is available from http://chneukirchen.org/repos/taptap/) - -As of Bacon 1.1, it also supports Knock: - - $ bacon -k whirlwind.rb - ok - should be empty - ok - should have zero size - ok - should raise on trying fetch any index - ok - should have an object identity - ok - should be a palindrome - not ok - should have super powers: FAILED - # Bacon::Error: no super powers found - # ./whirlwind.rb:39: A new array - should have super powers - # ./whirlwind.rb:38 - # ./whirlwind.rb:3 - - $ bacon -k whirlwind.rb | kn-sum - 6 tests, 1 failed (83.3333% succeeded) - -(knock is available from http://github.com/chneukirchen/knock/) - - -== Implemented assertions - -* should. and should.be. -* should.equal -* should.match -* should.be.identical_to / should.be.same_as -* should.raise(*exceptions) { } -* should.change { } -* should.throw(symbol) { } -* should.satisfy { |object| } - - -== Added core predicates - -* Object#true? -* Object#false? -* Proc#change? -* Proc#raise? -* Proc#throw? -* Numeric#close? - - -== before/after - -before and after need to be defined before the first specification in -a context and are run before and after each specification. - -As of Bacon 1.1, before and after do nest in nested contexts. - - -== Shared contexts - -You can define shared contexts in Bacon like this: - - shared "an empty container" do - it "should have size zero" do - end - - it "should be empty" do - end - end - - context "A new array" do - behaves_like "an empty container" - end - -These contexts are not executed on their own, but can be included with -behaves_like in other contexts. You can use shared contexts to -structure suites with many recurring specifications. - - -== Matchers - -Custom matchers are simply lambdas returning a boolean value, for -example: - - def shorter_than(max_size) - lambda { |obj| obj.size < max_size } - end - - [1,2,3].should.be shorter_than(5) - -You can use modules and extend to group matchers for use in multiple -contexts. - - -== bacon standalone runner - - -s, --specdox do AgileDox-like output (default) - -q, --quiet do Test::Unit-like non-verbose output - -p, --tap do TAP (Test Anything Protocol) output - -k, --knock do Knock output - -o, --output FORMAT do FORMAT (SpecDox/TestUnit/Tap) output - -Q, --no-backtrace don't print backtraces - -a, --automatic gather tests from ./test/, include ./lib/ - -n, --name NAME runs tests matching regexp NAME - -t, --testcase TESTCASE runs tests in TestCases matching regexp TESTCASE - -If you don't want to use the standalone runner, run -Bacon.summary_on_exit to install an exit handler showing the summary. - - -== Object#should - -You can use Object#should outside of contexts, where the result of -assertion will be returned as a boolean. This is nice for -demonstrations, quick checks and doctest tests. - - >> require 'bacon' - >> (1 + 1).should.equal 2 - => true - >> (6*9).should.equal 42 - => false - - -== Bacon with autotest - -Since version 1.0, there is autotest support. You need to tag your -test directories (test/ or spec/) by creating an .bacon file there. -Autotest then will find it. bin/bacon needs to be in PATH or RUBYPATH. - - -== Converting specs - -spec-converter is a simple tool to convert test-unit or dust style -tests to test/spec specs. - -It can be found at http://opensource.thinkrelevance.com/wiki/spec_converter. - - -== Thanks to - -* Michael Fellinger, for fixing Bacon for 1.9 and various improvements. -* Gabriele Renzi, for implementing Context#should. -* James Tucker, for the autotest support. -* Yossef Mendelssohn, for nested contexts. -* everyone contributing bug fixes. - - -== History - -* January 7, 2008: First public release 0.9. - -* July 6th, 2008: Second public release 1.0. - * Add Context#should as a shortcut for Context#it('should ' + _). - * describe now supports multiple arguments for better organization. - * Empty specifications are now erroneous. - * after-blocks run in the case of exceptions too. - * Autotest support. - * Bug fixes. - -* November 30th, 2008: Third public release 1.1. - * Nested before/after. - * Add -Q/--no-backtraces to not show details about failed specifications. - * Add Knock output. - * Bug fixes. - -* XXX, 2012: Fourth public release 1.2.0. - * #satisfy will not pass arguments anymore to the block, use lexical scope. - * Fixed Context#change?. - * Add support for finding specs named like spec/**/*_spec.rb. - * Contexts nest properly. - * Timer in TestUnitOutput. - * Nested output for SpecDoxOutput. - * Small cleanups and more tests. - - -== Contact - -Please mail bugs, suggestions and patches to -. - -Git repository (patches rebased on HEAD are most welcome): -http://github.com/chneukirchen/bacon -git://github.com/chneukirchen/bacon.git - - -== Copying - -Copyright (C) 2007, 2008 Christian Neukirchen - -Bacon is freely distributable under the terms of an MIT-style license. -See COPYING or http://www.opensource.org/licenses/mit-license.php. - - -== Links - -Behavior-Driven Development:: -RSpec:: -test/spec:: - -Christian Neukirchen:: diff --git a/README.rdoc b/README.rdoc new file mode 100644 index 0000000..92f428a --- /dev/null +++ b/README.rdoc @@ -0,0 +1,299 @@ += Bacon -- small RSpec clone. + + "Truth will sooner come out from error than from confusion." + ---Francis Bacon + +Bacon is a small RSpec clone weighing less than 350 LoC but +nevertheless providing all essential features. + + +== Whirl-wind tour + + require 'bacon' + + describe 'A new array' do + before do + @ary = Array.new + end + + it 'should be empty' do + @ary.should.be.empty + @ary.should.not.include 1 + end + + it 'should have zero size' do + @ary.size.should.equal 0 + @ary.size.should.be.close 0.1, 0.5 + end + + it 'should raise on trying fetch any index' do + lambda { @ary.fetch 0 }. + should.raise(IndexError). + message.should.match(/out of array/) + + # Alternatively: + should.raise(IndexError) { @ary.fetch 0 } + end + + it 'should have an object identity' do + @ary.should.not.be.same_as Array.new + end + + # Custom assertions are trivial to do, they are lambdas returning a + # boolean vale: + palindrome = lambda { |obj| obj == obj.reverse } + it 'should be a palindrome' do + @ary.should.be.a palindrome + end + + it 'should have super powers' do + should.flunk "no super powers found" + end + end + +Now run it: + + $ bacon whirlwind.rb + A new array + - should be empty + - should have zero size + - should raise on trying fetch any index + - should have an object identity + - should be a palindrome + - should have super powers [FAILED] + + Bacon::Error: no super powers found + ./whirlwind.rb:39: A new array - should have super powers + ./whirlwind.rb:38 + ./whirlwind.rb:3 + + 6 specifications (9 requirements), 1 failures, 0 errors + +If you want shorter output, use the Test::Unit format: + + $ bacon -q whirlwind.rb + .....F + Bacon::Error: no super powers found + ./whirlwind.rb:39: A new array - should have super powers + ./whirlwind.rb:38 + ./whirlwind.rb:3 + + 6 tests, 9 assertions, 1 failures, 0 errors + +It also supports TAP: + + $ bacon -p whirlwind.rb + ok 1 - should be empty + ok 2 - should have zero size + ok 3 - should raise on trying fetch any index + ok 4 - should have an object identity + ok 5 - should be a palindrome + not ok 6 - should have super powers: FAILED + # Bacon::Error: no super powers found + # ./whirlwind.rb:39: A new array - should have super powers + # ./whirlwind.rb:38 + # ./whirlwind.rb:3 + 1..6 + # 6 tests, 9 assertions, 1 failures, 0 errors + + $ bacon -p whirlwind.rb | taptap -q + Tests took 0.00 seconds. + FAILED tests 6 + 6) should have super powers: FAILED + + Failed 1/6 tests, 83.33% okay. + +(taptap is available from http://chneukirchen.org/repos/taptap/) + +As of Bacon 1.1, it also supports Knock: + + $ bacon -k whirlwind.rb + ok - should be empty + ok - should have zero size + ok - should raise on trying fetch any index + ok - should have an object identity + ok - should be a palindrome + not ok - should have super powers: FAILED + # Bacon::Error: no super powers found + # ./whirlwind.rb:39: A new array - should have super powers + # ./whirlwind.rb:38 + # ./whirlwind.rb:3 + + $ bacon -k whirlwind.rb | kn-sum + 6 tests, 1 failed (83.3333% succeeded) + +(knock is available from http://github.com/chneukirchen/knock/) + + +== Implemented assertions + +* should. and should.be. +* should.equal +* should.match +* should.be.identical_to / should.be.same_as +* should.raise(*exceptions) { } +* should.change { } +* should.throw(symbol) { } +* should.satisfy { |object| } + + +== Added core predicates + +* Object#true? +* Object#false? +* Proc#change? +* Proc#raise? +* Proc#throw? +* Numeric#close? + + +== before/after + +before and after need to be defined before the first specification in +a context and are run before and after each specification. + +As of Bacon 1.1, before and after do nest in nested contexts. + + +== Shared contexts + +You can define shared contexts in Bacon like this: + + shared "an empty container" do + it "should have size zero" do + end + + it "should be empty" do + end + end + + context "A new array" do + behaves_like "an empty container" + end + +These contexts are not executed on their own, but can be included with +behaves_like in other contexts. You can use shared contexts to +structure suites with many recurring specifications. + + +== Matchers + +Custom matchers are simply lambdas returning a boolean value, for +example: + + def shorter_than(max_size) + lambda { |obj| obj.size < max_size } + end + + [1,2,3].should.be shorter_than(5) + +You can use modules and extend to group matchers for use in multiple +contexts. + + +== bacon standalone runner + + -s, --specdox do AgileDox-like output (default) + -q, --quiet do Test::Unit-like non-verbose output + -p, --tap do TAP (Test Anything Protocol) output + -k, --knock do Knock output + -o, --output FORMAT do FORMAT (SpecDox/TestUnit/Tap) output + -Q, --no-backtrace don't print backtraces + -a, --automatic gather tests from ./test/, include ./lib/ + -n, --name NAME runs tests matching regexp NAME + -t, --testcase TESTCASE runs tests in TestCases matching regexp TESTCASE + +If you don't want to use the standalone runner, run +Bacon.summary_on_exit to install an exit handler showing the summary. + + +== Object#should + +You can use Object#should outside of contexts, where the result of +assertion will be returned as a boolean. This is nice for +demonstrations, quick checks and doctest tests. + + >> require 'bacon' + >> (1 + 1).should.equal 2 + => true + >> (6*9).should.equal 42 + => false + + +== Bacon with autotest + +Since version 1.0, there is autotest support. You need to tag your +test directories (test/ or spec/) by creating an .bacon file there. +Autotest then will find it. bin/bacon needs to be in PATH or RUBYPATH. + + +== Converting specs + +spec-converter is a simple tool to convert test-unit or dust style +tests to test/spec specs. + +It can be found at http://opensource.thinkrelevance.com/wiki/spec_converter. + + +== Thanks to + +* Michael Fellinger, for fixing Bacon for 1.9 and various improvements. +* Gabriele Renzi, for implementing Context#should. +* James Tucker, for the autotest support. +* Yossef Mendelssohn, for nested contexts. +* everyone contributing bug fixes. + + +== History + +* January 7, 2008: First public release 0.9. + +* July 6th, 2008: Second public release 1.0. + * Add Context#should as a shortcut for Context#it('should ' + _). + * describe now supports multiple arguments for better organization. + * Empty specifications are now erroneous. + * after-blocks run in the case of exceptions too. + * Autotest support. + * Bug fixes. + +* November 30th, 2008: Third public release 1.1. + * Nested before/after. + * Add -Q/--no-backtraces to not show details about failed specifications. + * Add Knock output. + * Bug fixes. + +* XXX, 2012: Fourth public release 1.2.0. + * #satisfy will not pass arguments anymore to the block, use lexical scope. + * Fixed Context#change?. + * Add support for finding specs named like spec/**/*_spec.rb. + * Contexts nest properly. + * Timer in TestUnitOutput. + * Nested output for SpecDoxOutput. + * Small cleanups and more tests. + + +== Contact + +Please mail bugs, suggestions and patches to +. + +Git repository (patches rebased on HEAD are most welcome): +http://github.com/chneukirchen/bacon +git://github.com/chneukirchen/bacon.git + + +== Copying + +Copyright (C) 2007, 2008 Christian Neukirchen + +Bacon is freely distributable under the terms of an MIT-style license. +See COPYING or http://www.opensource.org/licenses/mit-license.php. + + +== Links + +Behavior-Driven Development:: +RSpec:: +test/spec:: + +Christian Neukirchen:: diff --git a/Rakefile b/Rakefile index f6ad05d..6900abf 100644 --- a/Rakefile +++ b/Rakefile @@ -81,11 +81,11 @@ end desc "Generate RDoc documentation" Rake::RDocTask.new(:rdoc) do |rdoc| rdoc.options << '--line-numbers' << '--inline-source' << - '--main' << 'README' << + '--main' << 'README.rdoc' << '--title' << 'Bacon Documentation' << '--charset' << 'utf-8' rdoc.rdoc_dir = "doc" - rdoc.rdoc_files.include 'README' + rdoc.rdoc_files.include 'README.rdoc' rdoc.rdoc_files.include 'COPYING' rdoc.rdoc_files.include 'RDOX' rdoc.rdoc_files.include('lib/bacon.rb') diff --git a/bacon.gemspec b/bacon.gemspec index 0c28a50..6455e08 100644 --- a/bacon.gemspec +++ b/bacon.gemspec @@ -16,7 +16,7 @@ http://github.com/chneukirchen/bacon s.executables << 'bacon' s.require_path = 'lib' s.has_rdoc = true - s.extra_rdoc_files = ['README', 'RDOX'] + s.extra_rdoc_files = ['README.rdoc', 'RDOX'] s.test_files = [] s.author = 'Christian Neukirchen' -- cgit 1.4.1