Você está na página 1de 19

20/11/2010

[Mini curso] Do ruby ao Rails Parte

RSS Feeds
Posts Comentrios

Blogroll
Plugins Blog do Goncin Blog do Jonas Fonini Blog da Paulinha Winter WordPress Planet Themes

Parceiros
Smashing Jobs Postado em abril 4, 2010 s 5:58 am

[Mini curso] Do ruby ao Rails Parte 1


Pessoal, eu tenho estudado ruby e cada vez mais me apaixonado pela linguagem. O aprendizado dela fcil, e o dinamismo da linguagem algo extremamente encantador. Por isso, resolvi colocar um mini curso de Ruby aqui no site, que inicialmente vai englobar a linguagem ruby, e depois o Rails, framework MVC para a criao de aplicativos web to conhecido dos desenvolvedores ruby e que tem uma ampla simpatia e utilizao no mercado. Sem mais delongas, vamos l!

Introduo ao Ruby
Ruby uma linguagem de programao interpretada multi plataforma que tem muitas caractersticas em comum com outras linguagens de script como Perl e Phyton. Contudo a sua verso de orientao a objetos mais completa que aquelas linguagens e, em muitos aspectos, o Ruby tem mais em comum com o bisav das linguagens OOP (programao orientada a objetos)puras, o Smalltalk. A linguagem Ruby foi criada por um programador japons chamado Yukihiro Matsumoto (mais conhecido por Matz) e foi liberada pela primeira vez em 1995. Atualmente, muito da empolgao em volta do Ruby pode ser atribuda ao framework de desenvolvimento web chamado Rails popularmente conhecido como Ruby On Rails. Embora o Rails seja um framework impressionante, ele no a coisa mais importante do Ruby. Para ser sincero, se voc decidir mergulhar fundo no desenvolvimento com Rails sem antes dominar o Ruby, voc poder acabar fazendo uma aplicao que nem voc mesmo entende. Por isso decidi entrar inicialmente no Ruby, para depois passar para o Rails.

Onde baixar?
http://brunobemfica.net/?p=167 2/8

20/11/2010

[Mini curso] Do ruby ao Rails Parte

A ltima verso do ruby pode ser encontrada em www.ruby-lang.org, onde usurios do windows podem baixar o instalador do Ruby. Usurios de OS X, Linux e Solaris podem efetuar a instalao diretamente atravs dos repositrios (utilizando port, apt-get ou semelhante, e pfexec, respectivamente). Esse o site oficial da linguagem, e conta inclusive com um console para que voc teste o ruby diretamente no browser. O ruby conta ainda com uma outra implementao, chamada IRON Ruby, que roda em cima do .NET framework (IRON uma sigla Implementation Running On .Net). A prpria Microsoft apia o projeto, e incluiu no framework 4.0 os tipos dinmicos, para facilitar a implementao de Ruby, Python e outras linguagens semelhantes na plataforma .NET.

IDEs para desenvolvimento em Ruby


Eu no vou utilizar nenhuma IDE no incio, pois todas as aplicaes sero escritas em um editor de texto comum, e executadas em um terminal (prompt de comando, para os usurios Windows). Mas posteriormente, se quiserem utilizar IDEs para o desenvolvimento, existem inmeras no mercado, como o RubyMine(que pago), o Aptana Rad Rails, o Ruby in Steel (que um plugin para desenvolvimento ruby dentro do Visual Studio), alm de plugins especficos para o Eclipse e para o NetBeans.

Mos obra
Eu, por ser programador, entendo bem que programadores no gostam de enrolao, ento vamos ao cdigo. Abra seu editor de texto(Eu estou usando o Gedit no Ubuntu, mas pode ser o Bloco de notas do Windows ou qualquer outro editor de texto simples), e escreva a linha abaixo:
puts "Ol Ruby!"

Aps isso, salve o arquivo como HelloWorld.rb, e v at o seu terminal/prompt de comando e execute o arquivo com o comando ruby + nomedoarquivo.rb. Veja na imagem abaixo como ficou:

O famoso Ol, mundo em Ruby At ento, tudo muito simples. Vejamos ento alguns mtodos implcitos de manipulao de strings no Ruby.
http://brunobemfica.net/?p=167 3/8

20/11/2010

[Mini curso] Do ruby ao Rails Parte

Substitua o cdigo do seu hello world pela linha abaixo, e vejamos o que ocorre:
puts "hello ruby!".reverse

O resultado que teremos o seguinte:

Hello world em ruby, utilizando o mtodo reverse O ruby j possui funes prprias de manipulao de string como reverse, mostrada acima, alm de upcase, downcase, delete, insert, match e mais uma longa lista disponvel neste link. Vamos agora solicitar uma entrada de dados ao usurio. No Ruby, isto feito utilizando o mtodo gets(). Substitua o cdigo do seu arquivo pelo cdigo abaixo:
print " digite seu nome " nome = gets() print " Ol #{nome} "

Verifique se a sada foi exatamente esta:

http://brunobemfica.net/?p=167

4/8

20/11/2010

[Mini curso] Do ruby ao Rails Parte

O hello world, agora com entrada de dados Perceba que eu usei print ao invs de puts. Isso por que o puts pula uma linha aps exibir a string, e a minha inteno era que o cursor continuasse na mesma linha.

Tipagem em Ruby
Ao contrrio do que possa parecer, o Ruby uma linguagem fortemente tipada. No h definio de tipos na declarao das variveis, pois a tipagem dinmica, ou seja: Os tipos so definidos em tempos de execuo. O que nos permite uma maior flexibilidade na manipulao de atributos do ruby, como demonstrado no cdigo abaixo. Crie um arquivo chamado MinhaPrimeiraClasse.rb e insira o seguinte cdigo:
class Teste attr_accessor :Name end x = Teste.new x.Name = "Bruno" puts x.Name puts x.Name.class puts "\n" x.Name = 345 puts x.Name puts x.Name.class

Vejamos o resultado:

http://brunobemfica.net/?p=167

5/8

20/11/2010

[Mini curso] Do ruby ao Rails Parte

Veja a exibio dos valores e tipos das propriedades No cdigo acima, criei uma classe com um atributo chamado Nome, instanciei um objeto desse tipo e ao longo do cdigo, atribu diferentes valores a ele. em seguida, exibi seu valor e seu tipo. Veja que os tipos so distintos, ou seja: H tipagem, no so todos do tipo Object. Repare que na segunda linha, eu utilizo o comando attr_accessor para criar o atributo Nome. Este comando deixa implcito ao interpretador do Ruby de que esse atributo tem os mtodos get e set pblicos. Essa uma facilidade que a linguagem possui, para que no tenhamos que ficar escrevendo linhas e mais linhas de cdigo. Alm do accessor, podemos definir de forma semelhante apenas o get ou o set do atributo em questo, substituindo o attr_accessor por attr_reader no caso de o atributo ter apenas o get pblico, ou att_writer no caso de apenas o set ser pblico. Podemos tambm escrever normalmente os mtodos get e set. Abaixo, demonstro as maneiras diferentes de faz-lo.
class Pessoa attr_accessor :Nome, Idade end

Agora, utilizando attr_reader e attr_writter:


class Teste attr_reader :Name, :Idade attr_writer :Name, :Idade end

E por ltimo, criando os getters e setters manualmente:


class Teste def setNome(nome) @nome = nome end def getNome @nome end def setIdade(idade) @idade = idade

http://brunobemfica.net/?p=167

6/8

20/11/2010

[Mini curso] Do ruby ao Rails Parte end def getIdade @idade end end

Repare que eu no declarei as variveis @nome e @idade antes de utiliz-las nos mtodos. Isso ocorre por que o Ruby entende que as variveis iniciadas com @ so atributos da classe, logo, no preciso instanci-los. Repare tambm que nos gets eu simplesmente coloco o nome da varivel, sem utilizar a palavra-chave return, comum em outras linguagens. Isso por que o ruby entende que a ltima linha de cada mtodo o retorno, tambm eliminando a necessidade de escrever o return. Bem, por enquanto isso. Pretendo continuar essa srie de artigos o mais breve possvel. Espero que tenham gostado. Crticas e sugestes, os comentrios esto disposio. Abraos e keep coding! Tags:Desenvolvimento gil, Programao, rails, Ruby, Web by Bruno Bemfica Programao, Ruby

5 Respostas para [Mini curso] Do ruby ao Rails Parte 1


1. goncin em abril 5th, 2010 at 14:25 says: Opa! Estou seguindo o minicurso. A propsito: o tema do blog deixa o texto centralizado mesmo? 2. Bruno Bemfica em abril 5th, 2010 at 14:34 says: No, eu que gosto de centralizar mesmo, pra falar a verdade. Tu no foste o primeiro a perguntar isso, heheh; 3. Daniel Schmitz em abril 6th, 2010 at 10:38 says: Oi, mas o cdigo centralizado hehe? O fundo preto tambm tenta seguir o tema da imasters, fundo branco, fonte verdana (eu acho q ) 4. Bruno Bemfica em abril 6th, 2010 at 11:37 says: Na verdade, o wordpress no tem plugins muito bons para exibio de cdigo, logo, centralizando ou no, o cdigo no ficar identado. 5. sts em junho 18th, 2010 at 16:31 says: You post awsome posts. Bookmarked !

Deixar um comentrio

http://brunobemfica.net/?p=167

7/8

20/11/2010

[Mini curso] Do ruby ao Rails Parte

Posts Comentrios

Blogroll
Plugins Blog da Paulinha Winter Blog do Goncin WordPress Planet Themes Blog do Jonas Fonini

Parceiros
Smashing Jobs Postado em abril 6, 2010 s 11:48 am

[Mini curso] Do ruby ao Rails Parte 2


Dando continuao ao ltimo post, continuarei o curso(ao invs de estudar para a prova de certificao de amanh), vamos segunda parte do nosso mini curso de ruby e rails. Continuemos com a tipagem.

Tipagem em Ruby Continuao


Strings e nmeros
Como dito anteriormente, o Ruby uma linguagem dinamicamente e fortemente tipada, e possui alguns tipos primitivos(No?! Srio?). Mas o primitivo do Ruby um pouquinho diferente. Os tipos do Ruby so implcitos, ou seja: Tudo objeto. O que significa que eu posso utilizar um cdigo como esse:
puts 15.to_f

O cdigo acima ir escrever 15.0 na tela(o mtodo to_f transforma em float, assim como o to_s transforma em string e o to_i transforma em inteiro este ltimo, Fixnum ou Bignum dependendo da necessidade). Uma das vantagens de ser dinamicamente tipada que ela escova bits sozinha, ou seja: No h desperdcio de memria alocando valores pequenos em espaos grandes. As Strings(vetores de caracteres) fazem parte dos tipos primitivos do Ruby, e na sua utilizao no h nenhum grande diferencial para outras linguagens(exceto o fato de poderem ser atribudas com aspas simples ou duplas tal qual no PHP). Mas nos tipos numricos que o Ruby possui algo incomum. Normalmente somos acostumados a trabalhar com variveis do tipo int(ou Integer, para os programadores VB), e assumir que s existe um tipo inteiro (Int32, tipos como Int16/short e Int64/long no so amplamente utilizados). J no caso dos valores de ponto flutuante(float e double) somos um pouco mais acostumados a prestar ateno. E nisso que o Ruby se diferencia, ele tem 2 tipos inteiros e apenas um flutuante, como podemos observar abaixo:

http://brunobemfica.net/?p=186

2/5

20/11/2010

[Mini curso] Do ruby ao Rails Parte

Diviso de tipos numricos em Ruby Como o nome mesmo diz, os nmeros bignum so os inteiros grandes. Seu limite aproximadamente 2. Os nmeros Fixnum, ou inteiros pequenos vo de -2 a 2.

Smbolos
Smbolos em Ruby so um enigma. Ns utilizamos, mas muitos no entendem. Simplificando, smbolos so o que voc usa para representar nomes e strings. O que ele faz te dar uma forma eficiente de ter nomes descritivos, poupando o espao em memria que seria usado para gerar uma seqncia de caracteres para cada instncia de nomeao. Por exemplo:
comida = {"Entrada" =>"Shimeji", "Prato Principal" =>"Sushis variados", "Sobremesa" => "Melancia"}

Para simplificar um pouco mais, os smbolos servem para evitar mltiplas instncias do mesmo objeto. Como eu disse anteriormente, no Ruby tudo objeto. E uma das particularidades da linguagem que cada objeto tem um ID. Observe abaixo o que acontece:

O ID dos objetos diferente Perceba que os IDs so diferentes, embora a string e a linha de comando sejam exatamente iguais(estou
http://brunobemfica.net/?p=186 3/5

20/11/2010 Perceba que

[Mini curso] e linha de comando sejam os IDs so diferentes, embora a stringDoaruby ao Rails Parte exatamente iguais(estou usando o IRB console do Ruby). As duas strings so objetos diferentes em memria. O verdadeiro motivo por trs de um smbolo ser to eficiente em consumo de memria quanto uma varivel global e ao mesmo tempo to legvel quanto uma string. Notem pelo exemplo que eu dei na varivel comida, que a notao j de string. algo como um dicionrio (interface IDictionary no .NET e no Java). Veja agora como ficaria a mesma expresso utilizando Symbols:

Mesma expresso, utilizando smbolos Note que agora o ID do objeto o mesmo, o que a longo prazo nos pouparia muita memria em uma aplicao. E vejamos como fica o exemplo da comida:

"Array" de smbolos, uma coleo par-valor. Aps executar esse exemplo, tente executar as seguintes linhas:
minhaJanta = comida["Entrada"] puts minhaJanta minhaJanta.object_id

http://brunobemfica.net/?p=186

4/5

20/11/2010
comida["Entrada"].object_id

[Mini curso] Do ruby ao Rails Parte

Voc ver que tanto o valor da varivel minhaJanta quanto o object_id da mesma sero iguais aos de comida["Entrada"]. Bem, por enquanto s. Espero que tenham gostado. Tentarei continuar correndo com os artigos por aqui. Dvidas e sugestes, os comentrios esto abertos. Abraos e keep coding! Tags:Desenvolvimento gil, Programao, rails, Ruby, Web by Bruno Bemfica Programao, Ruby

Deixar um comentrio

1. 2. Name 3. Mail (will not be published) 4. Website (optional) 5.


Submit Comment

Leopress Theme for Wordpress by 7Graus (design based on Apple's Leopard Mac OS X)

http://brunobemfica.net/?p=186

5/5

20/11/2010

[Mini curso] Do Ruby ao Rails Parte

RSS Feeds
Posts Comentrios

Blogroll
Plugins Themes Blog do Goncin WordPress Planet Blog do Jonas Fonini Blog da Paulinha Winter

Parceiros
Smashing Jobs Postado em abril 9, 2010 s 3:20 am

[Mini curso] Do Ruby ao Rails Parte 3


Continuando o minicurso, continuarei a parte de tipos do Ruby falando sobre arrays. Aproveitarei para alinhar o post esquerda, atendendo a pedidos, e para testar o codecolorer, plugin de exibio de cdigo.

Arrays(Vetores)
Em Ruby, um array um objeto que contm um nmero de items. Estes items podem ser variveis(como strings, inteiros, Hash etc) ou at mesmo outros objetos(incluindo outros arrays para criar um array/vetor multimensional). Uma vez que os items foram agrupados em um array, voc pode realizar tarefas como ordenao em ordem alfabtica ou numrica, acessar e alterar o valor atribudo a cada item do array e at mesmo passar o grupo de items como argumento para um mtodo. H mais de uma forma de se criar um array em Ruby. Essencialmente, um array uma instncia da classe Array. Logo, podemos criar um array diretamente atribuindo valores a ele, ou simplesmente criar como um objeto, como demonstrado abaixo: DiasDaSemana = Array.new O construtor da classe Array tem algumas sobrecargas, logo poderamos ter passado como parmetro para ele apenas o tamanho do array (Ex: Array.new 7 ),o tamanho e um valor padro para os elementos (Ex: Array.new 7, hoje) ou diretamente os valores de cada elemento (Ex: Vetor = [1,2,3]). Abaixo h uma pequena demonstrao sobre as mais variadas formas de se instanciar um Array.

http://brunobemfica.net/?p=211

2/6

20/11/2010

[Mini curso] Do Ruby ao Rails Parte

As vrias maneiras de se instanciar um array Outros mtodos que temos ainda para arrays so empty?,shift, pop,push,delete, delete_at e size. O primeiro verifica se o array est vazio, shift remove o primeiro elemento do array, pop remove o ltimo elemento do array,push adiciona um elemento, delete remove um elemento passado como parmetro,delete_at remove um elemento que esteja em uma posio passada como parmetro e size retorna o tamanho do array. Execute o cdigo abaixo e verifique o resultado: vetor = ["a",1,2,"d","e","f"] vetor.empty? vetor.size vetor.shift vetor.pop vetor.delete_at(1) vetor.delete("d") vetor.inspect Observe o resultado do cdigo acima:

http://brunobemfica.net/?p=211

3/6

20/11/2010

[Mini curso] Do Ruby ao Rails Parte

Excluso de objetos em um array Os arrays em Ruby permitem infinitas possibilidades. Notem que o array acima possui elementos Fixnum e strings tambm. Sim, arrays em ruby podem conter diferentes tipos de elementos. Acessar elementos em arrays tambm algo bem simples. Podemos acessar atravs do ndice, ou atravs do prprio elemento. Execute o cdigo abaixo e veja os resultados: vetor.index("e") vetor[0] vetor[0].class Outra coisa interessante do ruby a subtrao de vetores, algo inexistente em linguagens como Java e C#. Execute o cdigo abaixo e observe o resultado: vetorDeLetras = ["a","b","c"] outroVetor = ["a","b"] vetorFinal = vetorDeLetras - outroVetor vetorFinal.inspect O resultado um vetor com os elementos que esto no primeiro vetor, mas no no segundo:

http://brunobemfica.net/?p=211

4/6

20/11/2010

[Mini curso] Do Ruby ao Rails Parte

Ordenao de arrays tambm muito simples em Ruby. Utilizando o mtodo sort!, ordenamos o array, e utilizando o mtodo reverse (cuja utilizao j foi demonstrada quando falei de strings lembrando que strings nada mais so que arrays de caracteres), podemos ordenar nossos arrays sem nenhum problema. Experimente rodar o cdigo abaixo, e verifique os resultados: vet = ["a","c","d","b"] vet.sort! vet.reverse

Ordenao de Arrays no Ruby E para terminar, vamos fazer uma atribuio de valores a mais de um elemento ao mesmo tempo. Execute o cdigo abaixo, e veja como o Ruby faz isso: vet = ["a","b","c","d","e"] vet[1..3] = "z","x","y" vet.inspect

http://brunobemfica.net/?p=211

5/6

20/11/2010

[Mini curso] Do Ruby ao Rails Parte

Sobrescrevendo elementos de um array Bem, por enquanto s. Os Arrays so uma ferramenta muito poderosa no Ruby, e ainda h muito a falar sobre eles, mas tpicos mais avanados deixarei para que vocs descubram. Dvidas, crticas e sugestes, os comentrios esto abertos. Espero que tenham gostado do artigo(e do fato de no estar mais centralizado, hehe). Abraos e keep coding! Tags:Desenvolvimento gil, Programao, rails, Ruby, Web by Bruno Bemfica Programao, Ruby

Deixar um comentrio

1. 2. Name 3. Mail (will not be published) 4. Website (optional) 5.


Submit Comment

Leopress Theme for Wordpress by 7Graus (design based on Apple's Leopard Mac OS X)

http://brunobemfica.net/?p=211

6/6

20/11/2010

[Mini curso] do Ruby ao Rails Parte

RSS Feeds
Posts Comentrios

Blogroll
Blog do Jonas Fonini Blog do Goncin WordPress Planet Blog da Paulinha Winter Plugins Themes

Parceiros
Smashing Jobs Postado em abril 28, 2010 s 2:26 am

[Mini curso] do Ruby ao Rails Parte 4


Dando continuidade ao nosso mini curso, fecharei a parte de tipos, falando rapidamente o que falta sobre arrays, abordando os Hashes e farei a introduo aos mtodos.

Arrays multidimensionais
Arrays multidimensionais: Nada mais so que arrays dentro de outros arrays. Abaixo, um exemplo de como fazer isso: #Cria um array com mltiplos arrays dentro vetor = [ [1,2,3], [4,5,6], [7,8,9] ] #Cria um array de tamanho 2 outroVetor = Array.new 2 #Atribui um novo array, tambm de tamanho 2, posio 0 do array outroVetor[0]= Array.new 2, 'TesteTerceiroArray' #Atribui um novo array, tambm de tamanho 2, posio 1 do array outroVetor[1]=Array.new 2,, 'TesteQuartoArray'

Indexando arrays
Voc pode indexar a partir do fim de um array usando o sinal de menos (), onde 1 o ndice do ltimo elemento; Tambm podemos usar faixas de valor (entre um ndice inicial e final separados por dois sinais de ponto .. ): vetor = ['h','e','l','l','o',' ','w','o','r','l','d'] print( arr[0,5] ) #=>; 'hello' print( arr[5,5 ] ) #=>; 'world'
http://brunobemfica.net/?p=237 2/6

20/11/2010

[Mini curso] do Ruby ao Rails Parte

O ruby possui um alias para arrays de strings, que o %w. Observe um exemplo abaixo: arrayDeStrings = %w{Exemplo de array de strings} arrayDeStrings.inspect

Hashes
Hashes tambm so colees, assim como os arrays. A diferena que o ndice dos Arrays sempre numrico, e Hashes so colees par-valor onde os ndices podem ser objetos tambm. Mesmo que os arrays forneam uma boa forma de indexar uma coleo de itens por nmero, h situaes que seria mais conveniente indexar de alguma outra forma. Se, por exemplo, ao listar os filmes da sua coleo de DVDs,seria mais significativo ter cada filme indexado pelo nome e/ou pelo gnero, ao invs de nmeros: 26, 42 e assim por diante. O Ruby possui uma classe que permite que voc faa isso: A classe Hash. Hashes so conhecidos em outras linguagens como dicionrios(em java e em .NET, classes que implementam a interface IDictionary). Tal qual um dicionrio de verdade, as entradas so indexadas por uma chave nica (em um dicionrio, seria uma palavra) e um valor (em um dicionrio, seria a definio da palavra). Voc pode criar um hash criando uma nova instncia da classe Hash: primeiroHash = Hash.new segundoHash = Hash.new("Um filme qualquer") Ambos os exemplos acima criam um Hash vazio. Um objeto Hash sempre tm um valor padro isto , um valor que retornado quando nenhum valor especfico encontrado em um dado ndice. Nestes dois exemplos, segundoHash inicializado com o valor default,um filme qualquer. A varivel primeiroHash no inicializado com um valor ento seu valor padro ser nil. Tendo criado um objeto Hash, podemos adicionar itens a ele usando uma sintaxe semelhante dos arrays isto , colocando um ndice nos colchetes e usando o sinal de igual para atribuir um valor.A diferena bvia aqui que, com um array, o ndice ( a chave ) deve ser um nmero inteiro; com um Hash, ele pode ser qualquer item de dado nico. Observe o exemplo abaixo: segundoHash['Horror'] = 'Jogos Mortais' segundoHash['Comedia'] = 'Uma noite no museu' segundoHash['Drama'] = 'Sempre ao seu lado' segundoHash['Sci-fi'] = 'Star Wars' Muitas vezes, a chave pode ser um nmero ou, como no cdigo acima, uma string. Por princpio, uma chave pode ser qualquer tipo de objeto. Dada uma classe Qualquer, a seguinte atribuio totalmente vlida: qqr = Qualquer.new('objeto Hash') segundoHash[qqr] = 'valor qualquer' Existe uma forma mais simples de criar e inicializar hashes. Adicione a chave seguida por => e o valor associado. Cada par chave-valor deve ser separado por uma vrgula e o lote todo colocado entre os sinais de chaves {}: musicHash = { 'Heavy Metal'=>'Iron Maiden',
http://brunobemfica.net/?p=237 3/6

20/11/2010

[Mini curso] do Ruby ao Rails Parte

'MPB'=>'Chico Buarque', 'Classico'=>'Beethoven', 'New Age'=>'Enya' } puts musicHash['Eletronica'] puts segundoHash['ValorInexistente'] Repare que no cdigo acima, as ltimas duas linhas tentam imprimir chaves que no existem. Nesse caso, o ruby exibe o valor default, que definido no momento em que a instncia criada. Para o hash de nome segundoHash, definimos esse valor na instncia, no cdigo um pouco acima, quando o instanciamos(foi passado como parmetro para o mtodo new). No caso do hash musicHash, ser retornado o valor nil. Os hashes ainda possuem os mtodos keys e values, que retornam um array com os respectivos valores.

Mtodos
Os mtodos em ruby tem algumas particularidades(que podem ser utilizadas para o bem ou para o mal). Observe o cdigo abaixo: def Soma(a,b) return a+b end def Soma a,b a+b end Ambos so o mesmo mtodo, apenas com pequenas diferenas na declarao. O Ruby no exige parnteses na declarao ou na invocao de mtodos(embora seja uma boa prtica utiliz-los), e embora tenha a palavra return como reservada, no exige que ela seja colocada no retorno do mtodo, pois o interpretador considera sempre a ltima linha como um retorno. O ruby tambm possui mtodos estticos, ou seja: Mtodos de classe, que no precisam de uma instncia para serem chamados. Observe abaixo um exemplo: class Exemplo def self.Soma a,b a+b end def Subtracao a,b a-b end end Na classe acima, o mtodo Soma precedido pela palavra self, o que indica que um mtodo esttico e no precisa de um objeto instanciado para ser chamado. Observe o que ocorre ao chamarmos ambos os mtodos sem instanciarmos a classe:

http://brunobemfica.net/?p=237

4/6

20/11/2010

[Mini curso] do Ruby ao Rails Parte

Invocao de mtodos no Ruby Ao chamar o mtodo soma que foi definido como esttico, temos o resultado esperado(3), mas ao chamar o mtodo Subtracao obtemos um erro, pois no instanciamos o objeto anteriormente. Por conveno, os mtodos em ruby, ao contrrio das classes, comeam com letra minscula. Escrevi os mtodos com letras maisculas por que eu sou um imbecil por costume, j que a minha linguagem nativa de programao o C#. Bem, por enquanto isso. Sugestes e crticas, os comentrios esto abertos. Abraos e keep coding. Tags:Desenvolvimento gil, Programao, rails, Ruby, Web by Bruno Bemfica Programao, Ruby

2 Respostas para [Mini curso] do Ruby ao Rails Parte 4


1. goncin em maio 20th, 2010 at 16:01 says: Opa! Gostei do template novo, mais fcil de ler. to Mac que at a fonte Monaco apareceu pra mim! 2. Bruno Bemfica em maio 20th, 2010 at 16:27 says: Valeu, Goncin! Eu realmente achei que cores mais claras fossem melhorar a leitura, e deixar mais agradvel. At os acessos do blog subiram depois da troca, hehehehe.

Deixar um comentrio

http://brunobemfica.net/?p=237

5/6

Você também pode gostar