Overview

Version 7 (Rich Morin, 06/17/2009 03:10 PM)

1 1
h1. Overview
2 2 Brian Ford
3 6 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 Ruby language syntax, "core library":http://ruby-doc.org/core classes, and "standard library":http://ruby-doc.org/stdlib classes.
4 2 Brian Ford
5 2 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 2 Brian Ford
7 2 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 2 Brian Ford
9 3 Brian Ford
* [[Getting Started]] -- Get up and running with MSpec and the RubySpec files
10 5 Brian Ford
* [[Ruby 1.9 Issues]] -- Fixing the RubySpecs for Ruby 1.9.
11 3 Brian Ford
* [[Organization]] -- Where to find what you are looking for
12 3 Brian Ford
* [[Style Guide]] -- Rules to follow while writing or fixing specs
13 3 Brian Ford
* [[Guards]] -- Understand how versions, platforms, and implementations play well together
14 7 Rich Morin
* "Runners":/wiki/mspec/Runners -- Detailed help for all the MSpec runner scripts
15 3 Brian Ford
* [[Contributing]] -- How to get involved improving the RubySpecs