Minicurso de Ruby
  XIV SACOMP
Robson Dornelles
 Gustavo Graña
Introdução
✔   Características:
    −
     Interpretada – irb
    −
     Puramente orientada a objetos
    −
     Herança única:
      Módulos – 'mixins'
        ●




    −
     Tipagem dinâmica
    −
     Garbage collector
    −
     Threads nativas
    −
     Tratamento de exceções
    −
     Sintaxe elegante
Introdução
✔   Biblioteca padrão:
    −
     Inteiros 'infinitos' (Fixnum e Bignum)
    −
     Expressões regulares
    −
     Iteradores
    −
     Arrays
    −
     Hashes
    −
     Blocos de código
    −
     Protocolos da Internet
    −
     Conexão com banco de dados
    −
     Etc, etc, etc, etc, etc, etc...
IRB
✔   IRB:
    −
     Interpretador (como python)
Variáveis
✔   Variaveis:
    −
     Não possuem tipo fixo – tipagem dinâmica
    −
     Não necessitam de declaração
    −
     Referência
Variáveis
✔ Escopo:
   variavel_comum = 10
    −




   $var_global = 10
    −




   @atributo_de_classe = 10
    −




   @@atributo_estático_de_classe = 10
    −



✔ Conversões:


   to_s, to_i, to_f, to_a
    −



✔ Variaveis simples → var = “abc” (referência mutável)


✔ Constante → Pi = 3,1415... (imutável)


✔ Símbolo → :simb
Classes Numéricas

✔   Classes Numéricas:
    −
     Float, Fixnum e Bignum
    −
     Coerção entre os tipos
    −
     Representação com precisão 'infinita'
    −
     Caso um Fixnum de overflow, conversão é
     automática
    −
     Valores imediatos
      'Embarcados' na referência → + desempenho
        ●
Strings


✔   String:
    −
     Alguns métodos:
      reverse, chomp, upcase, upcase!, split, slice,
        ●




      size, +, *
    −
     Mais métodos:
      String.methods
        ●




      Onde conhecer e testar os métodos → IRB
        ●
Expressões Regulares
Estruturas de controle
✔   If-then-else:




✔   While:
Arrays, Ranges e Iteradores
Hashes
Funções
✔   Criar arquivo com extensão .rb




✔ $ ruby 'arquivo'.rb lalala lululu
✔ Exercício! criar programa que receba um nome e


conte o numero de letras deste nome (cuidado para
não contar os espaços)
Blocks
Entrada e Saída
✔   Entrada/Saída padrão
Arquivos
Arquivos
✔ Outros métodos:
   rewind
    −




   readlines
    −




   File.methods.sort
    −



✔ Exercicio! criar programa que o nome de um arquivo


entrada.txt e crie um novo arquivo com as linhas do arquivo
orinigal invertidas. O nome do novo arquivo deve ser {nome
do arquivo original)_invertido.txt
✔ Dica:


   a = “123”
    −




   b = “#{a}456”
    −




   ou b = a + “456”
    −
Classes
Exercício
✔Criar um programa que receba um nome próprio e
gere um acronimo:
  Ex:
    −




   ruby prog.rb Robson Sejanes Soares Dornelles
        ●




   Saída: RSSD
        ●




  Dica: no exemplo, o array de argumentos passados
    −




  ao programa, ARGV, possuirá quatro elementos
Exercício
✔ Conseguimos entender as palavras mesmo que elas
estejam embaralhadas
   Ex: Etse cruso etsa miuto leagl
    −



✔ Criar um programa que receba o nome de um arquivo


de texto como argumento e bagunce as palavras deste
arquivo. O texto bagunçado deve ser apresentado na
saída padrão
✔ Dicas:


   array.sort_by
    −




   array.slice
    −




   www.google.com
    −
E agora?
✔ Muito material na internet
   http://mislav.uniqpath.com/poignant-guide/book/
    −




   http://www.ruby-lang.org/en/
    −



✔ Tópicos interessantes


   Programação com sockets
    −




   Programação para web (Ruby On Rails)
    −




   Threads
    −




   Ruby-gtk
    −

Introdução a Linguagem Ruby

  • 1.
    Minicurso de Ruby XIV SACOMP Robson Dornelles Gustavo Graña
  • 2.
    Introdução ✔ Características: − Interpretada – irb − Puramente orientada a objetos − Herança única: Módulos – 'mixins' ● − Tipagem dinâmica − Garbage collector − Threads nativas − Tratamento de exceções − Sintaxe elegante
  • 3.
    Introdução ✔ Biblioteca padrão: − Inteiros 'infinitos' (Fixnum e Bignum) − Expressões regulares − Iteradores − Arrays − Hashes − Blocos de código − Protocolos da Internet − Conexão com banco de dados − Etc, etc, etc, etc, etc, etc...
  • 4.
    IRB ✔ IRB: − Interpretador (como python)
  • 5.
    Variáveis ✔ Variaveis: − Não possuem tipo fixo – tipagem dinâmica − Não necessitam de declaração − Referência
  • 6.
    Variáveis ✔ Escopo: variavel_comum = 10 − $var_global = 10 − @atributo_de_classe = 10 − @@atributo_estático_de_classe = 10 − ✔ Conversões: to_s, to_i, to_f, to_a − ✔ Variaveis simples → var = “abc” (referência mutável) ✔ Constante → Pi = 3,1415... (imutável) ✔ Símbolo → :simb
  • 7.
    Classes Numéricas ✔ Classes Numéricas: − Float, Fixnum e Bignum − Coerção entre os tipos − Representação com precisão 'infinita' − Caso um Fixnum de overflow, conversão é automática − Valores imediatos 'Embarcados' na referência → + desempenho ●
  • 8.
    Strings ✔ String: − Alguns métodos: reverse, chomp, upcase, upcase!, split, slice, ● size, +, * − Mais métodos: String.methods ● Onde conhecer e testar os métodos → IRB ●
  • 9.
  • 10.
    Estruturas de controle ✔ If-then-else: ✔ While:
  • 11.
    Arrays, Ranges eIteradores
  • 12.
  • 13.
    Funções ✔ Criar arquivo com extensão .rb ✔ $ ruby 'arquivo'.rb lalala lululu ✔ Exercício! criar programa que receba um nome e conte o numero de letras deste nome (cuidado para não contar os espaços)
  • 14.
  • 15.
    Entrada e Saída ✔ Entrada/Saída padrão
  • 16.
  • 17.
    Arquivos ✔ Outros métodos: rewind − readlines − File.methods.sort − ✔ Exercicio! criar programa que o nome de um arquivo entrada.txt e crie um novo arquivo com as linhas do arquivo orinigal invertidas. O nome do novo arquivo deve ser {nome do arquivo original)_invertido.txt ✔ Dica: a = “123” − b = “#{a}456” − ou b = a + “456” −
  • 18.
  • 19.
    Exercício ✔Criar um programaque receba um nome próprio e gere um acronimo: Ex: − ruby prog.rb Robson Sejanes Soares Dornelles ● Saída: RSSD ● Dica: no exemplo, o array de argumentos passados − ao programa, ARGV, possuirá quatro elementos
  • 20.
    Exercício ✔ Conseguimos entenderas palavras mesmo que elas estejam embaralhadas Ex: Etse cruso etsa miuto leagl − ✔ Criar um programa que receba o nome de um arquivo de texto como argumento e bagunce as palavras deste arquivo. O texto bagunçado deve ser apresentado na saída padrão ✔ Dicas: array.sort_by − array.slice − www.google.com −
  • 21.
    E agora? ✔ Muitomaterial na internet http://mislav.uniqpath.com/poignant-guide/book/ − http://www.ruby-lang.org/en/ − ✔ Tópicos interessantes Programação com sockets − Programação para web (Ruby On Rails) − Threads − Ruby-gtk −