Getting Started

Version 9 (Brian Ford, 12/30/2008 10:15 AM)

1 1
h1. Getting Started
2 2 Brian Ford
3 2 Brian Ford
The RubySpec project aims to write a complete executable specification for the "Ruby":http://ruby-lang.org programming language that is syntax-compatible with "RSpec":http://rspec.info. RSpec is essentially a DSL (domain-specific language) for describing the behavior of code. This project contains specs that describe language syntax, "core library":http://ruby-doc.org/core classes, and "standard library":http://ruby-doc.org/stdlib classes.
4 2 Brian Ford
5 4 Brian Ford
The specs generally serve two purposes: 1) to drive development, and 2) as a verification mechanism. These goal can sometimes be at odds. During development, the code and specs evolve together. For verification, it is desirable to have a highly stable set of specs that ideally have been audited for correctness. The specs have been extensively used and developed "BDD":http://behaviour-driven.org/ style in the "Rubinius":http://rubini.us project for almost 1.5 years with numerous contributions by other projects like "JRuby":http://jruby.codehaus.org/. Consequently, the specs have attained a high degree of stability. However, there are a number of core library classes and numerous standard library classes for which specs still need to be written.
6 4 Brian Ford
7 4 Brian Ford
The following documents describe how the Rubinius specs are organized, the style used to write them, and special measures (guards) used to write a single body of specs that accommodates numerous different Ruby implementations.
8 4 Brian Ford
9 5 Brian Ford
* [[Organization]]
10 5 Brian Ford
* [[Style Guide]]
11 5 Brian Ford
* [[Guards]]
12 5 Brian Ford
* "Runners":/wiki/mspec/Runners