Você está na página 1de 35

Introduo a Ruby

Tiago Lima
!

13 de Maro de 2014

Objetivos

Conhecer a histria e caractersticas da linguagem Instalar o Ruby 2.0.0 Conhecer o console interativo Familiarizar-se com a linguagem

Histria

Histria

Criada por Yukihiro Matz Matsumoto em 1995 Misturou partes das suas linguagens favoritas: Perl, Smalltalk, Eiffel, Ada e Lisp Ruby projetada para fazer os programadores felizes (Matz)

Caractersticas

Caractersticas

Interpretadada Multiplataforma

Caractersticas

Intuitiva
2.days.ago! Time.now! 3.times!

Caractersticas

Flexvel
class String! def letters! self.gsub(/\d/, "")! end! end!
!

"ru2378by823ro2343ots".letters! # => "rubyroots"!

Caractersticas

Multiparadigma
Orientada a Objetos
mandela = Person.new! gandhi = Person.new! mandela.say_hello! mandela.be_friends_with(gandhi)

Caractersticas

Multiparadigma
Funcional
[1, 2, 3, 4, 5].select { |n| n % 2 == 0 }

Caractersticas

Multiparadigma
Imperativa
numbers = [1, 2, 3, 4, 5]! even = []! numbers.each do |n|! even << n if n.even?! end

Caractersticas

Multiparadigma
Reexiva
beagle.is_a? Animal! # => true!
!

"A String".methods! # => [:<=>, :==, :===, :eql?, :hash, ! :casecmp, :+, :*, :%, :[], : []=, :insert, :length, :size, :bytesize, : empty?, :=~, :match, :succ, :succ!,(...)]

Caractersticas

Tipagem
Dinmica Forte
name = "Nelson Mandela"! age = 94!
!

name + age! # => TypeError: can't convert Fixnum into! String!

Caractersticas

Tudo objeto
3.times! # => #<Enumerator: 3:times>!
!

'im an object'.emtpy?! # => false!

Classes e mtodos

Classes
Denindo uma classe
class User attr_accessor :name, :age
!

def initialize(name, age) name = name age = age end end


!

u = User.new("Goku", 2000) u.name # => Goku u.name = "Trunks"

Mtodos
Denindo um mtodo
class User ... def to_s name_capitalized + " nascido no ano de " + year_birth.to_s end

! !

private def name_capitalized name.capitalize end

def year_birth Time.now.year - age end end

goku.to_s # => "Goku nascido no ano de 1993"

Instalao

Instalando no Linux/Mac

$ \curl -L https://get.rvm.io | bash -s stable --ruby

https://rvm.io/ http://railscasts.com/episodes/200-rails-3-beta-and-rvm

Instalando no Windows

http://railsinstaller.org/

RubyGems

RubyGems

RubyGems.org is the Ruby community's gem hosting service. !


Biblioteca

http://rubygems.org/

RubyGems

$ gem install my-gem!


!

$ irb! 2.0.0p195 :001> require my-gem! => true

irb Ruby Interativo

O que ?

Contido na instalao Interpretador interativo do Ruby Avalia expresses contidas no cdigo timo para ter o primeiro contato com a linguagem

Como Executar

Mac OS e Linux
Para inici-lo, basta abrir o terminal e executar o irb

Exemplo no terminal do Mac OS

Como Executar

Windows
Abrir o Interactive Ruby

Exemplo com Ruby 1.9.2

Hello World

O Hello World no pode faltar!


2.0.0p195 :002 > puts "Hello World"! Hello World! => nil

Hello World

O que aconteceu?
!2.0.0p195 :002 > puts "Hello World"! Hello World! ! => nil

puts Comando bsico para imprimir nil Representa o valor nulo O comando puts imprime o parmetro e retorna nil

Explorando o irb

Clculos simples
Soma (+), Subtrao (-), Multiplicao (*), Diviso (/), Potenciao (**), etc.
2.0.0p195 :012 > 1 + 3! => 4 ! 2.0.0p195 :013 > 1 * 3! => 3 ! 2.0.0p195 :014 > 2 ** 3! => 8 ! 2.0.0p195 :015 > 2 / 3! => 0 ! 2.0.0p195 :016 > 2.0 / 3! => 0.6666666666666666

Exerccios

Exerccios

Instale o Ruby Explore a linguagem atravs do irb Use o http://tryruby.org, tutorial online

Exerccios
Dena uma classe que representa um Conjunto de Strings, suportando operaes de conjuntos:
Adicionar uma String Checar se o cojunto contm uma String especca Remover uma String Nmero de Strings em um conjunto Unio de dois conjuntos Interseo de dois conjuntos

Obrigado!

Referncias

Documentao do Ruby: http://rubydoc.org/ Tutorial sobre Ruby: http://tryruby.org/ Curso do Code School de Ruby: https:// www.codeschool.com/courses/tryruby

Você também pode gostar