README in quarry-0.3.0 vs README in quarry-0.4.0

- old
+ new

@@ -3,73 +3,87 @@ http://quarry.rubyforge.org == Introduction -Ruby Quarry is a developers testing and debuging suite. -It features a flexible BDD specification system and -a number of useful tools. +Ruby Quarry is a developers testing and debugging suite. +It features a literal-programming BDD specification system, +and exception based assertion system, and a few other of +useful QA tools. == Features -=== Design::Specification +=== Specifications -Quarry's BBD system is uniqe in two ways. First it utilizes Ruby's -Execption system to catch Assertions which are define via -with assertion <i>functors</i>. Eg. +Quarry's BBD system is uniqe in a few ways. First it utilizes +Ruby's Execption system to catch Assertions which are defined +via assertion <i>functors</i>. Eg. require 'quarry/assertion' - 4.assert = 5 + 4.assert == 5 -This will raise ans Assertion error. Quarry's design specification -then is just a measn of outlining and capturing these -assertions. +Because 4 != 5, this expression will raise an Assertion exception. +Quarry's Specification Runner class is thus just a means of +running and capturing these assertions. -The sepcification themeleleves are completely freewform. There is -no enforced nomenclature. Eg. +Quarry's Specifications themselves are simple text files, a practice +of literal programming. - Quarry::Design.spec "Example Specification" do + Example Specification + ===================== + Shows that the number 5 does not equal 4. - i_will_show "concerning the number 5" do + 5.assert! == 4 - that "5 != 4" do - 5.assert! == 4 - end + But in fact equals 5. - but_that "5 == 5" do - 5.assert == 5 - end + 5.assert == 5 - end + QED. - end +If we run this specification in verbatim mode the output would identical +(assuming we did not make a type and the assertions passed). +If there were errors or assertion failures, we would see information +detaling each. -If you were to run this specification, you would simply see an outline. +As you can see I used Markdown for my spcecification. You can use almost any +format you like. The only neccesary distiction is that desciption text be +align to the left margin and all specification code be indented. Quarry also +recognized headers, currently Markdown and RDoc style headers (We'll add +Textile soon.) - = Example Specification - == i_will_show concerning the number 5 - === that 5 != 4 - === but_that 5 == 5 +We'll leave discussion of the merits of this system to another place. But +it should be clear that this approach if especcailly conveniant, allowing +documentation and specification to seemlessly merge. -If there were errors, we say *-items detaling each. +=== Stubs +Quarry provides a flexible stubbing facility. + +For now see RDoc API. + + === MethodProbe -MethodProbe (aka the Duck Hunter) is an expiremental project -- -not meant for production use, that can dip-down into a method -and provide a read-out of the methods it uses. Thus it -provides a (duck-)signiture of a method. Keep in mind, that -becuase it is runtime bound it is not perfect. It can miss -some parts of a method due to conditionals and, albiet rare, -it can get stung by the halting problem. +MethodProbe (aka the Duck Hunter) can dip-down into a method and +provide a read-out how it functions --known as a <i>method signiture</i>. +MethodProbe is somewhat expiremental becuase it is runtime bound, so proper +execution can not be 100% guarenteed. It can miss some parts of a method +due to conditional branching (a probe can;t pretend to be false) and, +albiet rare, it can also get stuck in an infinite loop a la the +Halting Problem. Even so, it can be used effectively under controlled +situations if used with care. +=== More to come .... + + == Copying -Copyright (c) 2007 Tiger Ops / Thomas Sawyer +Copyright (c) 2007, 2008 Tiger Ops / Thomas Sawyer Quarry is distributed under the terms of the GPLv3.