Escolar Documentos
Profissional Documentos
Cultura Documentos
�ndice
1 Hist�ria
1.1 Etimologia
2 Caracter�sticas
2.1 Tipos de dados
2.2 Declara��o de vari�veis
3 Exemplos de c�digo
3.1 Programa Ol� Mundo
3.2 Strings
3.3 Cole��es
3.3.1 Array
3.3.2 Hash
3.4 Blocos e iteradores
3.5 Classes
3.5.1 Classes abertas
3.5.2 Heran�a
3.6 Modules
3.7 Tratamento de exce��es
3.8 Ruby para administradores de sistemas
4 Reposit�rios e bibliotecas
5 Ver tamb�m
6 Refer�ncias
7 Liga��es externas
Hist�ria
Por volta de 2005, o interesse pela linguagem Ruby subiu em conjunto com o Ruby on
Rails, um framework de aplica��es web popular escrito em Ruby. Rails �
frequentemente creditada como a aplica��o que tornou Ruby "famosa" e a associa��o �
t�o forte que ambos s�o muitas vezes confundidos por programadores que s�o novos a
Ruby.[13]
At� a vers�o 1.9.2-p290, a linguagem era lan�ada sob a licen�a dupla Ruby License /
GNU General Public License. A partir da vers�o 1.9.3-p0, passou a ser lan�ada sob a
licen�a dupla Ruby License / FreeBSD License (tamb�m conhecida como 2-clause BSDL).
[14][3] A partir da vers�o 2.1.0, o projeto passou a utilizar versionamento
sem�ntico.[15] Suporte oficial para a vers�o 1.9.3 foi encerrado em 23 de fevereiro
de 2015.[16]
Etimologia
O nome Ruby foi decidido durante uma sess�o de bate-papo online entre Matsumoto e
Keiju Ishitsuka em 24 de fevereiro de 1993, antes que qualquer linha de c�digo
tivesse sido escrita para a linguagem.[17] Inicialmente foram propostos dois nomes:
"Coral" e "Ruby", sendo esse �ltimo nome proposto escolhido mais tarde por Matz em
um e-mail para Ishitsuka.[18] Matsumoto explicou mais tarde que o motivo de ter
escolhido o nome "Ruby" foi porque essa era a pedra zodiacal de um de seus colegas.
[19]
Caracter�sticas
Uma s�rie de caracter�sticas foram definidas para atender �s propostas do Ruby:
Todas as vari�veis s�o objetos, onde at� os "tipos primitivos" (tais como inteiro,
real, entre outros) s�o classes
M�todos de gera��o de c�digo em tempo real, como os "attribute accessors"
Atrav�s do RubyGems, � poss�vel instalar e atualizar bibliotecas com uma linha de
comando, de maneira similar ao APT do Debian Linux
Code blocks (blocos de c�digo) passados como par�metros para m�todos; permite a
cria��o de clausuras
Mixins, uma forma de emular a heran�a m�ltipla
Tipagem din�mica, mas forte. Isso significa que todas as vari�veis devem ter um
tipo (fazer parte de uma classe), mas a classe pode ser alterada dinamicamente
Ruby est� dispon�vel para diversas plataformas, como Microsoft Windows, Linux,
Solaris e Mac OS X, al�m de tamb�m ser execut�vel em cima da m�quina virtual Java
(atrav�s do JRuby) e da m�quina virtual Microsoft .NET (atrav�s do IronRuby).
Tipos de dados
N�o existem "tipos primitivos" em Ruby; todos os tipos s�o classes:
Object � a classe m�e de todas as outras classes em Ruby
Numeric � uma classe abstrata que representa n�meros
Integer � uma classe que representa n�meros inteiros
Fixnum representa n�meros inteiros de precis�o fixa
Bignum representa n�meros inteiros de precis�o infinita, dependente apenas da
mem�ria dispon�vel
Float � uma classe que representa n�meros de ponto flutuante (n�meros reais)
String uma cadeia de caracteres. Pode ser delimitado por ap�strofes (') ou aspas
("). Tudo o que h� entre ap�strofes � interpretado literalmente, entre aspas o
programador deve se utilizar de s�mbolos para representar caracteres espec�ficos,
como em C. Exemplos: 'azul', "a\nb\nc"
Symbol � semelhante a uma string, mas dois s�mbolos iguais possuem o mesmo endere�o
de mem�ria, sendo assim � �timo para se utilizar como �ndice numa Hash. Por�m,
devido � sua natureza, o coletor de lixo do Ruby n�o os elimina. � definido com um
sinal de dois pontos (:), por exemplo, :nome
Array s�o arrays din�micos, que podem ser usados para representar matrizes e
vetores. � delimitado por colchetes ([]) e cada valor � separado por v�rgula.
Exemplo: [4, 'azul', :termometro]
Hash representa um vetor associativo, e, assim como as Arrays, � din�mica. �
delimitada por chaves ({}), e o �ndice precede o valor com um sinal '=>'. Exemplo:
{:controller => 'user', :action => 'index'}. Qualquer objeto pode ser um �ndice,
mas os mais usados s�o as Strings e os Symbols
Regexp representa express�es regulares, delimitadas por //. Funciona de forma
semelhante a Perl. Exemplo: /a|ae/
Declara��o de vari�veis
Um objeto em Ruby � declarado com uma atribui��o comum:
class Carro
@@marcas = [ "Ford", "GM", "Fiat", "VW" ]
end
Uma vari�vel local � declarada normalmente. Uma vari�vel de inst�ncia � declarada
com um "@" no nome. Uma vari�vel de classe � declarada com "@@", e uma vari�vel
global � declarada com "$". Vari�veis que iniciam com uma letra mai�scula s�o
consideradas constantes.
class A
@@contexto = "classe"
def initialize
@contexto = "inst�ncia"
end
def contexto
@contexto
end
def A.contexto
@@contexto
end
end
a = A.new
a.contexto # >> "inst�ncia"
A.contexto # >> "classe"