RubySpec

Last updated
RubySpec
Written in Ruby
Type Ruby programming language specifications tests
Website www.rubyspec.org   OOjs UI icon edit-ltr-progressive.svg

The RubySpec project aimed to write a complete executable specification for the Ruby programming language. This project contains specs that describe Ruby language syntax and standard library classes. The project contains two main components:

The RubySpec test suite captured most of 1.8.6/1.8.7/1.9 behavior as a reference conformance tool. Ruby MRI 1.9.2 passed over 99% of RubySpec, [1] while version 2.2.0 crashed on one of the tests. [2]

History

The RubySpec tests were initially created in 2006 for the Rubinius project, with significant contribution from the JRuby project. [3] It is now used in other Ruby implementation projects such as IronRuby. [4] The RubySpec project was discontinued at the end of 2014 due to a lack of uptake from mainstream ruby developers. [2]

It was later revived by Benoit Daloze as "The Ruby Spec Suite", and is as of 2023-08-15 actively maintained at https://github.com/ruby/spec.

Related Research Articles

<span class="mw-page-title-main">Ruby (programming language)</span> General-purpose programming language

Ruby is an interpreted, high-level, general-purpose programming language which supports multiple programming paradigms. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including primitive data types. It was developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.

<span class="mw-page-title-main">Visual Basic (.NET)</span> Object-oriented computer programming language

Visual Basic (VB), originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visual Basic language, the last version of which was Visual Basic 6.0. Although the ".NET" portion of the name was dropped in 2005, this article uses "Visual Basic [.NET]" to refer to all Visual Basic languages released since 2002, in order to distinguish between them and the classic Visual Basic. Along with C# and F#, it is one of the three main languages targeting the .NET ecosystem. Microsoft updated its VB language strategy on 6 February 2023, stating that VB is a stable language now and Microsoft will keep maintaining it.

In computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures—are tested to determine whether they are fit for use. It is a standard step in development and implementation approaches such as Agile.

IronPython is an implementation of the Python programming language targeting the .NET Framework and Mono. The project is currently maintained by a group of volunteers at GitHub. It is free and open-source software, and can be implemented with Python Tools for Visual Studio, which is a free and open-source extension for Microsoft's Visual Studio IDE.

<span class="mw-page-title-main">Ruby on Rails</span> Server-side open source web application framework

Ruby on Rails is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pages. It encourages and facilitates the use of web standards such as JSON or XML for data transfer and HTML, CSS and JavaScript for user interfacing. In addition to MVC, Rails emphasizes the use of other well-known software engineering patterns and paradigms, including convention over configuration (CoC), don't repeat yourself (DRY), and the active record pattern.

JRuby is an implementation of the Ruby programming language atop the Java Virtual Machine, written largely in Java. It is free software released under a three-way EPL/GPL/LGPL license. JRuby is tightly integrated with Java to allow the embedding of the interpreter into any Java application with full two-way access between the Java and the Ruby code.

The Bean Scripting Framework is a method of allowing the use of scripting in Java code. It provides a set of Java classes which provides support within Java applications for scripting languages, and also allows access to Java objects and methods. Some examples of languages that can be used in combination with BSF and Java include Python, Jython and Tcl, as well as JRuby and Apache Groovy using their own libraries.

The Ruby License is a Free and Open Source license applied to the Ruby programming language and also available to be used in other projects. It contains an explicit dual licensing clause, stating that software subject to its terms may be distributed under either the terms included the Ruby License itself or under those of either the GNU General Public Licence v2, or the two-clause BSD License.

Rubinius was an alternative Ruby implementation created by Evan Phoenix. Based loosely on the Smalltalk-80 Blue Book design, Rubinius sought to "provide a rich, high-performance environment for running Ruby code."

The Dynamic Language Runtime (DLR) from Microsoft runs on top of the Common Language Runtime (CLR) and provides computer language services for dynamic languages. These services include:

IronRuby is an implementation of the Ruby programming language targeting Microsoft .NET Framework. It is implemented on top of the Dynamic Language Runtime (DLR), a library running on top of the Common Language Infrastructure that provides dynamic typing and dynamic method dispatch, among other things, for dynamic languages.

<span class="mw-page-title-main">Merb</span>

Merb is a discontinued model–view–controller web framework in Ruby, notable as a precursor to Rails 3. It brought increased focus on speed and modularity to Rails 3. The name Merb is a contraction of "Mongrel" and "Erb".

<span class="mw-page-title-main">Ruby MRI</span> Interpreter for the Ruby programming language

Matz's Ruby Interpreter or Ruby MRI was the reference implementation of the Ruby programming language named after Ruby creator Yukihiro Matsumoto ("Matz"). Until the specification of the Ruby language in 2012, the MRI implementation was considered the de facto reference, especially since an independent attempt to create the specification (RubySpec) had failed. Starting with Ruby 1.9, and continuing with Ruby 2.x and above, the official Ruby interpreter has been YARV.

OpenTG

OpenTG is an open-source implementation of a bulletin board system (BBS) software program written for Linux and/or Unix. Written from scratch in JRuby, the goal is to reproduce the look, feel, and functionality of similar legacy BBS systems such as Tag, Telegard, Maximus or Renegade, which were written for DOS and OS/2 during the pre-internet communication era. No original code from any BBS has been used nor referenced in order to focus on innovation and unique capabilities.

ZK is an open-source Ajax Web application framework, written in Java, that enables creation of graphical user interfaces for Web applications with little required programming knowledge.

<span class="mw-page-title-main">Play Framework</span> Open-source web framework written in Scala

Play Framework is an open-source web application framework which follows the model–view–controller (MVC) architectural pattern. It is written in Scala and usable from other programming languages that are compiled to JVM bytecode, e.g. Java. It aims to optimize developer productivity by using convention over configuration, hot code reloading and display of errors in the browser.

Mirah has been a programming language based on Ruby language syntax, local type inference, hybrid static–dynamic type system, and a pluggable compiler toolchain. Mirah was created by Charles Oliver Nutter to be "a 'Ruby-like' language, probably a subset of Ruby syntax, that [could] compile to solid, fast, idiomatic JVM bytecode." The word mirah refers to the gemstone ruby in the Javanese language, a play on the concept of Ruby in Java.

<span class="mw-page-title-main">MagLev (software)</span>

MagLev is an alternative implementation of the Ruby programming language built on the GemStone/S virtual machine from GemTalk Systems. Much of Maglev was set out to be written in Ruby as much as possible, resulting in some collaboration with the Rubinius project. As of the first beta release, the project runs RubyGems 1.3.5 natively, with support for C and Smalltalk extensions. MagLev has a distinct VM architecture that allows it to share code and data between runtimes and execution cycles through a Ruby API.

References

  1. "Ruby 1.9.2 is released" . Retrieved 2010-10-23.
  2. 1 2 "Matz's Ruby Developers Don't Use RubySpec and It's Hurting Ruby" . Retrieved 2015-01-13.
  3. "RubySpec" . Retrieved 2010-10-23. The project began as part of Rubinius (now sponsored by Engine Yard) and most of the work was done by contributors to Rubinius, with significant contribution by JRuby collaborators. Engine Yard has provided extensive financial support for this project, employing Evan Phoenix since June 2007 and several more full-time developers since January 2008. See History for more details of the project's timeline.
  4. "RubySpec" . Retrieved 2010-10-23. The IronRuby GIT repo includes a copy of the RubySpec tests, including the MSpec test framework, under External.LCA_RESTRICTED\Languages\IronRuby\mspec. This makes it easy to modify existing tests or write new tests, and fix the bugs in the IronRuby sources, all in a single commit to the IronRuby repo.