mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 17:41:41 +00:00
Merge pull request #669 from rafalchmiel/patch-1
[ruby-ecosystem/en] 'ruby' -> 'Ruby' + fix typo
This commit is contained in:
commit
cd99d24a0e
@ -7,18 +7,18 @@ contributors:
|
||||
|
||||
---
|
||||
|
||||
People using ruby generally have a way to install different ruby versions,
|
||||
People using Ruby generally have a way to install different Ruby versions,
|
||||
manage their packages (or gems), and manage their gem dependencies.
|
||||
|
||||
## Ruby Managers
|
||||
|
||||
Some platforms have ruby pre-installed or available as a package. Most rubyists
|
||||
do not use these, or if they do, they only use them to bootstrap another ruby
|
||||
installer or implementation. Instead rubyists tend to install a ruby manager to
|
||||
install and switch between many versions of ruby and their projects' ruby
|
||||
Some platforms have Ruby pre-installed or available as a package. Most rubyists
|
||||
do not use these, or if they do, they only use them to bootstrap another Ruby
|
||||
installer or implementation. Instead rubyists tend to install a Ruby manager to
|
||||
install and switch between many versions of Ruby and their projects' Ruby
|
||||
environments.
|
||||
|
||||
The following are the popular ruby/environment managers:
|
||||
The following are the popular Ruby environment managers:
|
||||
|
||||
* [RVM](https://rvm.io/) - Installs and switches between rubies. RVM also has
|
||||
the concept of gemsets to isolate projects' environments completely.
|
||||
@ -33,11 +33,11 @@ The following are the popular ruby/environment managers:
|
||||
|
||||
Ruby was created by Yukihiro "Matz" Matsumoto, who remains somewhat of a
|
||||
[BDFL](https://en.wikipedia.org/wiki/Benevolent_Dictator_for_Life), although
|
||||
that is changing recently. As a result, the reference implementation of ruby is
|
||||
called MRI (Matz' Reference Implementation), and when you hear a ruby version,
|
||||
that is changing recently. As a result, the reference implementation of Ruby is
|
||||
called MRI (Matz' Reference Implementation), and when you hear a Ruby version,
|
||||
it is referring to the release version of MRI.
|
||||
|
||||
The three major version of ruby in use are:
|
||||
The three major version of Ruby in use are:
|
||||
|
||||
* 2.0.0 - Released in February 2013. Most major libraries and frameworks support
|
||||
2.0.0.
|
||||
@ -53,36 +53,36 @@ the community has moved to at least 1.9.2 or 1.9.3.
|
||||
|
||||
## Ruby Implementations
|
||||
|
||||
The ruby ecosystem enjoys many different implementations of ruby, each with
|
||||
The Ruby ecosystem enjoys many different implementations of Ruby, each with
|
||||
unique strengths and states of compatability. To be clear, the different
|
||||
implementations are written in different languages, but *they are all ruby*.
|
||||
implementations are written in different languages, but *they are all Ruby*.
|
||||
Each implementation has special hooks and extra features, but they all run
|
||||
normal ruby files well. For instance, JRuby is written in Java, but you do
|
||||
normal Ruby files well. For instance, JRuby is written in Java, but you do
|
||||
not need to know Java to use it.
|
||||
|
||||
Very mature/compatible:
|
||||
|
||||
* [MRI](https://github.com/ruby/ruby) - Written in C, this is the reference implementation of ruby. By
|
||||
* [MRI](https://github.com/ruby/ruby) - Written in C, this is the reference implementation of Ruby. By
|
||||
definition it is 100% compatible (with itself). All other rubies
|
||||
maintain compatibility with MRI (see [RubySpec](#rubyspec) below).
|
||||
* [JRuby](http://jruby.org/) - Written in Java and ruby, this robust implementation is quite fast.
|
||||
* [JRuby](http://jruby.org/) - Written in Java and Ruby, this robust implementation is quite fast.
|
||||
Most importantly, JRuby's strength is JVM/Java interop, leveraging existing
|
||||
JVM tools, projects, and languages.
|
||||
* [Rubinius](http://rubini.us/) - Written primarily in ruby itself with a C++ bytecode VM. Also
|
||||
mature and fast. Because it is implemented in ruby itself, it exposes many VM
|
||||
* [Rubinius](http://rubini.us/) - Written primarily in Ruby itself with a C++ bytecode VM. Also
|
||||
mature and fast. Because it is implemented in Ruby itself, it exposes many VM
|
||||
features into rubyland.
|
||||
|
||||
Medium mature/compatible:
|
||||
|
||||
* [Maglev](http://maglev.github.io/) - Built on top of Gemstone, a Smalltalk VM. Smalltalk has some
|
||||
impressive tooling, and this project tries to bring that into ruby
|
||||
impressive tooling, and this project tries to bring that into Ruby
|
||||
development.
|
||||
* [RubyMotion](http://www.rubymotion.com/) - Brings ruby to iOS development.
|
||||
* [RubyMotion](http://www.rubymotion.com/) - Brings Ruby to iOS development.
|
||||
|
||||
Less mature/compatible:
|
||||
|
||||
* [Topaz](http://topazruby.com/) - Written in RPython (using the PyPy toolchain), Topaz is fairly young
|
||||
and not yet compatible. It shows promise to be a high-performance ruby
|
||||
and not yet compatible. It shows promise to be a high-performance Ruby
|
||||
implementation.
|
||||
* [IronRuby](http://ironruby.net/) - Written in C# targeting the .NET platform, work on IronRuby seems
|
||||
to have stopped since Microsoft pulled their support.
|
||||
@ -94,14 +94,14 @@ which MRI version to target.
|
||||
|
||||
## RubySpec
|
||||
|
||||
Most ruby implementations rely heavily on [RubySpec](http://rubyspec.org/). Ruby
|
||||
Most Ruby implementations rely heavily on [RubySpec](http://rubyspec.org/). Ruby
|
||||
has no official specification, so the community has written executable specs in
|
||||
ruby to test their implementations' compatability with MRI.
|
||||
Ruby to test their implementations' compatibility with MRI.
|
||||
|
||||
## RubyGems
|
||||
|
||||
[RubyGems](http://rubygems.org/) is a community-run package manager for ruby.
|
||||
RubyGems ships with ruby, so there is no need to download it separately.
|
||||
[RubyGems](http://rubygems.org/) is a community-run package manager for Ruby.
|
||||
RubyGems ships with Ruby, so there is no need to download it separately.
|
||||
|
||||
Ruby packages are called "gems," and they can be hosted by the community at
|
||||
RubyGems.org. Each gem contains its source code and some metadata, including
|
||||
@ -122,8 +122,8 @@ dependency graph to resolve.
|
||||
|
||||
# Testing
|
||||
|
||||
Testing is a large part of ruby culture. Ruby comes with its own Unit-style
|
||||
testing framework called minitest (Or TestUnit for ruby version 1.8.x). There
|
||||
Testing is a large part of Ruby culture. Ruby comes with its own Unit-style
|
||||
testing framework called minitest (Or TestUnit for Ruby version 1.8.x). There
|
||||
are many testing libraries with different goals.
|
||||
|
||||
* [TestUnit](http://ruby-doc.org/stdlib-1.8.7/libdoc/test/unit/rdoc/Test/Unit.html) - Ruby 1.8's built-in "Unit-style" testing framework
|
||||
@ -133,6 +133,6 @@ are many testing libraries with different goals.
|
||||
|
||||
## Be Nice
|
||||
|
||||
The ruby community takes pride in being an open, diverse, welcoming community.
|
||||
The Ruby community takes pride in being an open, diverse, welcoming community.
|
||||
Matz himself is extremely friendly, and the generosity of rubyists on the whole
|
||||
is amazing.
|
||||
|
Loading…
Reference in New Issue
Block a user