Formação Ruby & Redu :: Introdução a Ruby

Embed Size (px)

DESCRIPTION

Uma introdução a linguagem Ruby: história e características principais, como instalar o Ruby 2.0.0 e muito mais.

Citation preview

  • 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, Eiel, 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

  • Caractersticas

    Multiparadigma

    Reflexiva

    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!# => #!!'im an object'.emtpy?!# => false!

  • Classes e mtodos

  • Classes

    Definindo uma classeclass 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

    Definindo um mtodoclass 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.

    http://rubygems.org/Biblioteca

  • 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?

    !

    !

    puts Comando bsico para imprimir

    nil Representa o valor nulo

    O comando puts imprime o parmetro e retorna nil

    2.0.0p195 :002 > puts "Hello World"!Hello World! => 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

    Defina uma classe que representa um Conjunto de Strings, suportando operaes de conjuntos:

    Adicionar uma String

    Checar se o cojunto contm uma String especfica

    Remover uma String

    Nmero de Strings em um conjunto

    Unio de dois conjuntos

    Interseo de dois conjuntos

  • Obrigado!

  • Referncias

    Documentao do Ruby: http://ruby-doc.org/

    Tutorial sobre Ruby: http://tryruby.org/

    Curso do Code School de Ruby: https://www.codeschool.com/courses/try-ruby