Fundação PTIBrasil
Parque Tecnológico ITAIPU - PTI
ITAIPU: Gerar energia elétrica de qualidade, com responsabilidade social e ambiental, impulsionando o desenvolvimento econômico, turístico e tecnológico, sustentável, no Brasil e no Paraguai.
PTI: Promover o desenvolvimento territorial sustentável por meio da educação, ciência, tecnologia, inovação, cultura e empreendedorismo.
Missão
Desde a sua criação, em 2003, o PTI busca nas tecnologias abertas soluções inovadoras para disseminar o conhecimento, promover a inclusão social e digital e impulsionar o desenvolvimento territorial.
Além da utilização do software livre em ambiente corporativo, o PTI atua no seu desenvolvimento, por meio de centros de P&D, e na sua disseminação.
rubyCOMEÇANDO COM RUBY, DOS CONCEITOS AO PRIMEIRO CÓDIGO
Objetivo
Apresentar esta poderosa ferramenta, sua expressividade e seus conceitos. O que podemos fazer com ela e sua contribuição para a comunidade.
LatinoWare e ruby ?!
Como assim?
Vamos instalar o ruby?
Apt-get?
Compilando
https://www.ruby-lang.org/en/downloads/
$ tar xfv ruby-2.1.3.tar.gz
Ruby Version Manager
RVM é uma ferramenta de linha de comando que permite instalar, gerenciar e trabalhar com multiplas versões de ruby e diversos conjuntos de gems.
rvm.io
$ \curl -sSL https://get.rvm.io | bash -s stable
“Ruby está projetado para fazer os programadores felizes.” - Yukihiro “Matz” Matsumoto - Criado do Ruby
Ruby
● Totalmente Orientada a Objetos● Dinâmica● Fortemente Tipada● Gramática complexa, mas expressiva● Uma $ RICA $ Core API● Inspirada em Smalltalk, Lisp e Perl● Programação Funcional● Metaprogramação
Em ruby, tudo é objeto, sem exceções!
Types
Duck Typing
“Se anda como um pato e faz barulho como um pato, então de deve ser um pato. E o interpretador ficará feliz em fazer com que o objeto seja tratado como um pato. Na prática, isso significa que em vez de fazer verificações de tipo de um objeto, você deve se preocupar se este objeto é capaz de executar o método que você precisa.” - Nano Vieira
Duck Typing
Duck Typing
Strings
Números
Números
Hash
Symbols
Expressões regulares
Modulos
Classes
Herança
Obs: ‘Não existe herança múltipla em ruby’
Mixins
Blocos
Blocos não são objetos!
E o que mais?
● Condicionais (if, else, elseif, unless, ?)● Seletores (Case)● Estruturas de repetição(for...in, while..until, loop)● Iteradores (Enumerator, Iterator)● Procs e Lambdas● Self● Singleton Class● Variáveis (Classe, instancia)● Constantes● CallBacks● Monkey Patching e Refinements
Como continuar?
Try ruby!
tryruby.org/
Como continuar?www.codeschool.com/paths/ruby
Ferramentasgithub.com/Sdogruyol/awesome-ruby
Style guidegithub.com/bbatsov/ruby-style-guide
Considerações finais
Códigos dos exemplos estão disponíveis em:
github.com/gnomex/ruby-at-latinoware2014