Ruby e Ruby on Rails

Documentos relacionados
Linguagem de Programação. Helder Lucas S. Silas Valdemar

Alunos. Hudson Martins da Silva Laércio Pedro Hoppe

Tutorial Ruby versão 0.3 SOBRE O TUTORIAL

Práticas de Desenvolvimento de Software

História. Nasceu em 1993, numa discussão entre Yuhikiro Matsumoto e um colega.

Bruno Jurkovski Lucas Fialho Zawacki. Site do curso:

Ruby. Simplicidade e produtividade

TÍTULO: UM ESTUDO SOBRE METAPROGRAMAÇÃO: AS LINGUAGENS DE PROGRAMAÇÃO PYTHON E RUBY

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL

Bruno Jurkovski Lucas Fialho Zawacki. Site do curso:

Sistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com

Allisson Barros 12/ Daniel Luz 13/ Leandro Bergmann 14/ Luiz Fernando Vieira 13/ Uriel Silva 12/

Começando com Ruby on

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Internet e Programação Web

Ruby on Rails. Aprendizado evolutivo do Ruby até o desenvolvimento de aplicações em Rails

Linguagens de programação

A Linguagem de Programação Ruby. Diego Rubin

Fundamentos de Programação II. Introdução à linguagem de programação C++

Aula 1 Considerações Iniciais. Tópico 1 O que é Ruby? Tópico 2 O que é RGSS? Tópico 3 Sintaxe

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira / j.edu@vqv.com.br

Python. Introdução à Programação SI1 - BSI

Arduino e Python. Do It Yourself! Luís Bruno Jefferson Jarden Francisco Marcelino

Nos Trilhos com RAILS. Sylvestre Mergulhão

Objetivos do mini curso. Conhecer a linguagem. Noção de programação utilizando Python. Aprender o báscio.

Ruby Uma Linguagem Atraente

Linguagens de Programação. Linguagens de Script. Carlos Bazilio

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

Instalando o ambiente de desenvolvimento

Instituto Federal do Sertão-PE. Curso de PHP. Professor: Felipe Correia

Mini Curso DESCOMPLICANDO C# Professor Hélio

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Quem sou eu? Daniel Coelho de Andrade. Graduando em Engenharia de Computação - UEFS. Membro da Empresa Júnior de Engenharia de Computação da UEFS

Sumário. Introdução ao Universo Linux Parte I

2 echo "PHP e outros.";

Introdução à linguagem Perl

Dinamismo e elegância na parceria Java & Ruby

Treinamento Python/Zope/Plone. terça-feira, 4 de agosto de 15

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Tudo o que Você Sempre Quis Saber Sobre Linguagens de Programação* (*Mas Tinha Medo de Perguntar) Diego Padilha Rubert FACOM

Aprendendo Python na Prática. Dante Moreira Zaupa Mestrando em Computação Aplicada Bolsista de Pesquisa

PROGRAMA DE DISCIPLINA

Programação Orientada a Objeto em Python

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular INTRODUÇÃO À PROGRAMAÇÃO Ano Lectivo 2014/2015

FRWTC800 - Desenvolvimento Web com Ruby on Rails

Organização de programas em Python. Vanessa Braganholo

Fábio Rodrigues Jorge.

FBV - Linguagem de Programação II. Um pouco sobre Java

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

1 O PHP E A WORLD WIDE WEB

Python. Uma visão geral sobre a linguagem. Guilherme Artém Henrique Castro José Mauro

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Programação Orientada a Objetos (DPADF 0063)

Algoritmos e Linguagem de Programação I

Estruturas de controle no nível de sentença

Linguagem de Programação. Introdução ao PHP. Prof Mauricio Lederer Ciência da Computação - UNIANDRADE 1

PROGRAMA DE DISCIPLINA

Linguagens Formais e Autômatos (LFA)

Programação WEB II. Introdução. Variáveis, Constantes, Operadores, Estruturas de Seleção e Repetição Arrays e Vetores. Thiago Miranda dos Santos Souza

Programação Web com PHP. Prof. Wylliams Barbosa Santos Optativa IV Projetos de Sistemas Web

2.3. PHP Tipos de dados e operadores

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

Introdução à Linguagem Java

PHP. Hypertext Pre-Processor

PROGRAMAÇÃO ORIENTADA A OBJETOS

Expressões. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe

JSP - ORIENTADO A OBJETOS

Danilo Borges da Silva

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Python: Comandos Básicos. Claudio Esperança

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL

AULA Uma linguagem de programação orientada a objetos

CONVENÇÃO DE CÓDIGO JAVA

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

Uma aplicação distribuída

Sockets em Ruby. Curso de Tecnologia em Redes de Computadores Programação para Redes

Introdução a ActionScript 3.0

PRESIDÊNCIA DA REPÚBLICA SECRETARIA-GERAL Secretaria-Executiva

Computação II Orientação a Objetos

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

CURSO DE PROGRAMAÇÃO EM JAVA

Introdução ao PHP. Prof. Késsia Marchi

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Introdução a POO. Introdução a Linguagem C++ e POO

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática


Introdução à linguagem Python. Slides extras

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Transcrição:

Ruby e Ruby on Rails Universidade Federal de São Carlos Anderson Kenji Mise kenji@vardump.com

Ruby? linguagem de programação orientada a objetos (tudo é objeto)

Ruby on Rails? RoR é um framework para desenvolvimento web feito em Ruby

Histórico do Ruby Japão, 1995 Yukihiro 'Matz' Matsumoto stable1.8.4 - março/2006 puramente orientado a objetos mais popular que Python, no Japão

Características

Tudo é um objeto

5 é um objeto da class Fixnum "palavra" é um objeto da classe String "palavra".capitalize retorna "Palavra" 5.times { print "oi mundo" } 5+2

carro = Veiculo.new() carro.porta.abrir() carro.porta.abrir.fechar carro.porta.abrir.fechar.ligar.acelerar carro.ligar unless carro.motorista.drunk? carro.desligar if carro.motorista.idade < 18

características variáveis globais, de classe (estáticas), de instância e locais tratamento de exceções herança única Módulos (mixins) Sintaxe de blocos Garbage Collector (mark & sweep)

características linguagem de script, interpretada planos para gerar bytecodes na versão 1.9 Threading Expressões Regulares GNU/Linux, Unix, DOS, Mac OS, BeOS, OS/2, Windows

free software

do começo

variáveis variáveis locais em minúsculas x = 2 constantes em maiúsculas Pi = 3.1415 variáveis globais com cifrão $cambio = 2.10 variáveis de classe (estáticas) @@blocked = true variáveis de instância @idade = 19

blocos de código delimitados por { } ou do/ do print 'bom dia' unless noite? { print "bom dia" if!noite? } 5.times { puts 'olá' } blocos recebem parâmetros 5.times { n puts 'olá' + n.to_s }

Array m = ["janeiro", "fevereiro","março","abril","maio"] m << "junho" m.push("julho") m.push "julho" m.include?("abril") m.include? "abril"

Hash s = { "a"=>"amora", "b"=>"bairro","c"=>"cor"} s[9] = "nove" s[:cor] = :vermelho print s["a"] print s[:cor] print s[9]

Iteração m.each { mes print mes } s.each { key,value print key.to_s + value.to_s } teste.sort.each { x print x }

Símbolos x = "vermelho" y = String.new("vermelho") s[:cor] = :vermelho telhado = :vermelho Memória "vermelho" "vermelho" :vermelho :cor z = :vermelho

Tratamento de Exceções begin z = x /y rescue TypeError => err print "Erro de tipo" rescue => err print "Erro Geral" ensure z = 3

Estruturas de controle if else elsif unless else x = 5 unless ano == 2006 case when else

range 3..9 3, 4, 5, 6, 7, 8, 9 3...9 3, 4, 5, 6, 7, 8 x = 1..5 x.each { print 'oi' }

loop while condição for i in 1..5 print i for mes in ['jan', 'fev','mar','abr', 'mai'] print mes

Classes e métodos class Driver def initialize(i) @idade = i @drunk = false def drunk? @drunk def get_idade @idade

Métodos class Tools def area(x,y) x * y def say "Hello, world"

Métodos def get_numbers [4, 8, 15, 16, 23,42] a1,a2,a3,a4,a5,a6 = get_numbers last, first = "mise", "anderson"

setters e getters class Pessoa attr_reader :idade attr_accessor :nome attr_writer :cpf def initialize(n) @nome = n

setters e getters p2 = Pessoa.new("Joao") print p2.idade p2.nome = "Silva" p2.cpf = '219438539'

Herança class Cliente < Pessoa attr_accessor :credito def initialize(n) super(n)

sobrecarga class Item attr_accessor :valor def +(x) @valor += x.valor

lo arquivos File.open('arquivo.txt') do file file.each_line do linha print linha

Módulos Module Dispositivo def Dispositivo.ligar puts 'ligado'

Módulos class Carro < Veiculo require 'Dispositivo' def initialize tmp = Dispositivo.ligar

Banco de Dados require 'dbi' con = DBI.connect ( "DBI:Mysql:dbname:localhost","user","password") con.execute('select * from tabela') do resultset resultset.fetch do tupla print tupla["nome"]+" "+tupla["ereco"]

XSLT require 'xml/xslt' xslt = XML::XSLT.new() xslt.xls = 'layout.xsl' xslt.xml = 'dados.xml' print xslt.serve xslt.save('resultado.html')

Ruby na web mod_ruby no Apache CGI eruby <%= "palavras".capitalize %>

Ruby no mundo va de livros de ruby e python ruby python http://radar.oreilly.com/archives/2005/12/ruby_book_sales_surpass_python.html

Google Trs ruby python php http://google.com/trs?q=python+language%2c+ruby+language%2c++php+language&ctab=0&geo=all&date=all

Referências

Ruby in a Nutshell A Desktop Quick Reference Autor: Yukihiro Matsumoto

Ruby Conheco a linguagem Autor: Eustáquio 'TaQ' Rangel de Oliveira Jr.

Programming Ruby The Pragmatic Programmer's Guide Autor: Dave Thomas

Agile Web Development with Rails Autores: Dave Thomas, David Heinemeier Hansson

Tietagem

Contato http://vardump.com/edu kenji@vardump.com