public
Description: Executable specification for the Ruby programming language using RSpec syntax.
Homepage: http://rubyspec.org
Clone URL: git://github.com/rubyspec/rubyspec.git
commit  91f73c887706cd54e0b6f15c9e3b999b72f01a92
tree    a33fd15921e1aaf8cb355ce6608d2fba213fcc74
parent  24d5364722f2b69ba411f325e0a92c5136886b6a
rubyspec / language
name age message
..
file README Mon Dec 29 15:08:07 -0800 2008 Removed separate 1.8 directory and moved specs up. [brixen]
file alias_spec.rb Wed Apr 22 23:08:54 -0700 2009 Add additional alias specs for specific cases o... [technomage]
file and_spec.rb Mon Dec 29 15:08:07 -0800 2008 Removed separate 1.8 directory and moved specs up. [brixen]
file array_spec.rb Sat Feb 07 00:03:07 -0800 2009 Add spec for implicit hash as only element on a... [mernen]
file block_spec.rb Thu Jul 02 00:21:55 -0700 2009 Add spec for mismatched block arguments [enebo]
file break_spec.rb Wed Jul 01 11:33:25 -0700 2009 Updated and added a few specs in ./language/ fo... [alloy]
file case_spec.rb Mon Mar 30 14:55:28 -0700 2009 Fixed 1.9 failures in the 'case' spec. Added an... [alloy]
file catch_spec.rb Wed Jul 01 11:33:25 -0700 2009 Updated and added a few specs in ./language/ fo... [alloy]
file class_spec.rb Thu Jul 09 17:12:19 -0700 2009 language/class: Tweak for 1.9's change in const... [runpaint]
file class_variable_spec.rb Sun Jan 04 20:45:05 -0800 2009 Adding more expectations to class_variable_spec [febuiles]
file constants_spec.rb Mon Dec 29 15:08:07 -0800 2008 Removed separate 1.8 directory and moved specs up. [brixen]
file def_spec.rb Mon Mar 30 14:55:28 -0700 2009 Fixed 1.9 failures in the 'def' spec. [alloy]
file defined_spec.rb Loading commit data...
file eigenclass_spec.rb Wed Jul 01 11:33:25 -0700 2009 Updated and added a few specs in ./language/ fo... [alloy]
file else_spec.rb Mon Dec 29 15:08:07 -0800 2008 Removed separate 1.8 directory and moved specs up. [brixen]
file encoding_spec.rb Fri Jan 02 18:51:25 -0800 2009 Removed expectations for exception messages. S... [brixen]
file ensure_spec.rb Mon Dec 29 15:08:07 -0800 2008 Removed separate 1.8 directory and moved specs up. [brixen]
file execution_spec.rb Wed Dec 31 09:15:33 -0800 2008 Cleanup execution spec. See below. We don't sp... [brixen]
file file_spec.rb
directory fixtures/ Fri May 22 12:05:27 -0700 2009 Some cleanup for return from a block specs. [brixen]
file for_spec.rb
file hash_spec.rb
file if_spec.rb Mon Mar 30 14:55:29 -0700 2009 Fixed 1.9 failures in the 'if' spec. No colons ... [alloy]
file line_spec.rb Mon Dec 29 15:08:07 -0800 2008 Removed separate 1.8 directory and moved specs up. [brixen]
file literal_lambda_spec.rb Sat Jul 04 14:02:34 -0700 2009 ->(){}: Specify 1.9 literal lambda syntax. [runpaint]
file loop_spec.rb Wed Jul 01 11:33:25 -0700 2009 Updated and added a few specs in ./language/ fo... [alloy]
file magic_comment_spec.rb Mon Dec 29 15:08:07 -0800 2008 Removed separate 1.8 directory and moved specs up. [brixen]
file metaclass_spec.rb Wed Jul 01 11:33:25 -0700 2009 Updated and added a few specs in ./language/ fo... [alloy]
file method_spec.rb Sat Mar 21 12:14:48 -0700 2009 Add an additional check for private self.foo= w... [Charles Oliver Nutter]
file module_spec.rb Mon Mar 30 14:55:29 -0700 2009 Added a 1.9 specific example to the 'module' spec. [alloy]
file next_spec.rb Mon Mar 30 14:55:29 -0700 2009 Fixed a 1.9 failure in the 'next' spec. [alloy]
file not_spec.rb
file numbers_spec.rb Thu Feb 05 14:30:31 -0800 2009 Add specs for ?x-style character strings in 1.9... [Charles Nutter]
file or_spec.rb Mon Dec 29 15:08:07 -0800 2008 Removed separate 1.8 directory and moved specs up. [brixen]
file order_spec.rb Wed Jan 21 12:00:27 -0800 2009 Expand order-of-evaluation specs to include ari... [Charles Nutter]
file precedence_spec.rb Mon Mar 30 14:55:29 -0700 2009 Added 1.9 specific examples to the 'precedence'... [alloy]
file predefined_spec.rb
file private_spec.rb
file redo_spec.rb Mon Mar 30 14:55:30 -0700 2009 Fixed 1.9 failure in the 'redo' spec. [alloy]
file regexp_spec.rb
file rescue_spec.rb
file retry_spec.rb Mon Mar 30 14:55:30 -0700 2009 Fixed 1.9 failures in the 'retry' spec. [alloy]
file return_spec.rb
file string_spec.rb Thu Feb 05 14:30:31 -0800 2009 Add specs for ?x-style character strings in 1.9... [Charles Nutter]
file super_spec.rb
file symbol_spec.rb Mon May 11 22:14:29 -0700 2009 Added symbol spec: symbol doesn't contain \0 [ujihisa]
file throw_spec.rb Wed Jul 01 11:33:25 -0700 2009 Updated and added a few specs in ./language/ fo... [alloy]
file undef_spec.rb
file unless_spec.rb Mon Mar 30 14:55:30 -0700 2009 Fixed a 1.9 failure in the 'unless' spec. No co... [alloy]
file until_spec.rb Mon Dec 29 15:08:07 -0800 2008 Removed separate 1.8 directory and moved specs up. [brixen]
file variables_spec.rb
directory versions/
file while_spec.rb Mon Dec 29 15:08:07 -0800 2008 Removed separate 1.8 directory and moved specs up. [brixen]
file yield_spec.rb Mon Dec 29 15:08:07 -0800 2008 Removed separate 1.8 directory and moved specs up. [brixen]
language/README
There are numerous possible way of categorizing the entities and concepts that
make up a programming language. Ruby has a fairly large number of reserved
words. These words significantly describe major elements of the language,
including flow control constructs like 'for' and 'while', conditional
execution like 'if' and 'unless', exceptional execution control like 'rescue',
etc. There are also literals for the basic "types" like String, Regexp, Array
and Fixnum.

Behavorial specifications describe the behavior of concrete entities. Rather
than using concepts of computation to organize these spec files, we use
entities of the Ruby language. Consider looking at any syntactic element of a
Ruby program. With (almost) no ambiguity, one can identify it as a literal,
reserved word, variable, etc. There is a spec file that corresponds to each
literal construct and most reserved words, with the exceptions noted below.
There are also several files that are more difficult to classify: all
predefined variables, constants, and objects (predefined_spec.rb), the
precedence of all operators (precedence_spec.rb), the behavior of assignment
to variables (variables_spec.rb), the behavior of subprocess execution
(execution_spec.rb), the behavior of the raise method as it impacts the
execution of a Ruby program (raise_spec.rb), and the block entities like
'begin', 'do', ' { ... }' (block_spec.rb).

Several reserved words and other entities are combined with the primary
reserved word or entity to which they are related:

false, true, nil, self              predefined_spec.rb
in                                  for_spec.rb
then, elsif                         if_spec.rb
when                                case_spec.rb
catch                               throw_spec.rb