O documento apresenta uma introdução ao framework Ruby on Rails, incluindo sua história, estrutura MVC, convenções REST, instalação, criação de projetos, operações básicas com scaffold e validações.
Curso CSS3 com Sass e Compass - Aula 02 - Instalação e Hello WorldLoiane Groner
O documento descreve os passos para instalar o Sass e criar um primeiro arquivo Sass (.scss) em diferentes sistemas operacionais. Ele explica como instalar o Ruby, o gem Sass e compilar o arquivo Sass em CSS no Windows, Linux e Mac e fornece um exemplo simples de código Sass e seu resultado em CSS.
Desmistificando um Ambiente de Desenvolvimento WEB com VagrantLuis Henrique Costa
Este documento apresenta a ferramenta Vagrant, que simplifica o ambiente de desenvolvimento web. Vagrant permite a criação, configuração e provisionamento de máquinas virtuais de forma automatizada e portátil através do arquivo Vagrantfile. O documento também discute como ferramentas como Puppet e PuPHPet podem ser usadas para automatizar ainda mais a configuração do ambiente de desenvolvimento.
O documento descreve os principais conceitos do framework Ruby on Rails, incluindo sua filosofia DRY e Convention over Configuration, as partes do framework como Active Record, Action Pack e Active Support, o padrão MVC, operações CRUD com Active Record, validações, relacionamentos, scaffolding, roteamento e uso de AJAX.
Workshop de introdução ao rápida a linguagem JavaScript, a plataforma Node.js e o framework Socket.IO.
Nesta talk é apresentado suas principais características, de forma prática, contando um exercício sobre orientação a objetos com javascript e um exercício sobre criação de um microblog realtime usando Socket.IO.
O documento fornece dicas para otimizar o desempenho de sites, incluindo respeitar o protocolo HTTP, usar corretamente os métodos GET e POST, definir cabeçalhos de expires, usar sprites CSS, compactar arquivos e minificar códigos.
AJAX permite recuperar dados do servidor de forma assíncrona sem interferir na página, permitindo aplicações mais dinâmicas e processamento paralelo de requisições. Bibliotecas como jQuery facilitam o uso de AJAX para interagir com APIs, enviar formulários e construir aplicações ricas.
Curso CSS3 com Sass e Compass - Aula 02 - Instalação e Hello WorldLoiane Groner
O documento descreve os passos para instalar o Sass e criar um primeiro arquivo Sass (.scss) em diferentes sistemas operacionais. Ele explica como instalar o Ruby, o gem Sass e compilar o arquivo Sass em CSS no Windows, Linux e Mac e fornece um exemplo simples de código Sass e seu resultado em CSS.
Desmistificando um Ambiente de Desenvolvimento WEB com VagrantLuis Henrique Costa
Este documento apresenta a ferramenta Vagrant, que simplifica o ambiente de desenvolvimento web. Vagrant permite a criação, configuração e provisionamento de máquinas virtuais de forma automatizada e portátil através do arquivo Vagrantfile. O documento também discute como ferramentas como Puppet e PuPHPet podem ser usadas para automatizar ainda mais a configuração do ambiente de desenvolvimento.
O documento descreve os principais conceitos do framework Ruby on Rails, incluindo sua filosofia DRY e Convention over Configuration, as partes do framework como Active Record, Action Pack e Active Support, o padrão MVC, operações CRUD com Active Record, validações, relacionamentos, scaffolding, roteamento e uso de AJAX.
Workshop de introdução ao rápida a linguagem JavaScript, a plataforma Node.js e o framework Socket.IO.
Nesta talk é apresentado suas principais características, de forma prática, contando um exercício sobre orientação a objetos com javascript e um exercício sobre criação de um microblog realtime usando Socket.IO.
O documento fornece dicas para otimizar o desempenho de sites, incluindo respeitar o protocolo HTTP, usar corretamente os métodos GET e POST, definir cabeçalhos de expires, usar sprites CSS, compactar arquivos e minificar códigos.
AJAX permite recuperar dados do servidor de forma assíncrona sem interferir na página, permitindo aplicações mais dinâmicas e processamento paralelo de requisições. Bibliotecas como jQuery facilitam o uso de AJAX para interagir com APIs, enviar formulários e construir aplicações ricas.
O documento descreve os conceitos fundamentais de REST e HTTP. Explica que REST usa o protocolo HTTP e seus métodos como GET, POST, DELETE e PUT para acessar recursos identificados por URIs de forma uniforme, stateless e cacheável através de camadas. Também apresenta exemplos de implementação de serviços RESTful usando o framework CherryPy em Python.
O documento fornece uma introdução abrangente sobre PHP, incluindo sua história, características, sintaxe e conceitos fundamentais. É destacado que PHP é uma linguagem de script open source amplamente usada para desenvolvimento web, executada no servidor, e que suporta programação procedural e orientada a objetos. Exemplos de código PHP demonstram tipos de dados, arrays, funções e outros elementos da linguagem.
Este documento descreve um script para automatizar backups do servidor pfSense usando o comando wget no cron. O script usa wget para fazer download de um arquivo XML contendo as configurações do pfSense em um diretório especificado, adicionando a data e hora no nome do arquivo. O cron é configurado para rodar o script uma vez por dia as 18:00 horas para garantir backups automáticos regulares.
Este documento descreve a implementação de um servidor Linux Ubuntu para fornecer serviços de firewall, proxy e arquivo. Ele detalha a instalação do Ubuntu Server, configuração do firewall Iptables e DHCP, implementação do servidor proxy Squid e servidor de arquivos Samba, e acesso remoto via SSH e Webmin.
Caio Cutrim é um entusiasta de Node.js e programador full-stack. Ele teve seu primeiro contato com programação web em 2007 e é auto-didata em informática e músico. O documento discute os problemas das arquiteturas bloqueantes em linguagens como Python, Java e PHP, e como Node.js resolve isso usando I/O não-bloqueante e event loop.
O documento descreve o PhantomJS, um "browser" sem interface gráfica que roda no console e permite executar testes funcionais de JavaScript e acessar e manipular páginas web. Ele suporta padrões web como DOM, CSS e JSON e pode ser usado com frameworks de teste como Jasmine ou para integrar testes com Capybara no Ruby.
PHP Watchdog integra-se ao iptables e ao SSH com o objetivo de abrir portas e túneis sob demanda por um período determinado. O usuário deve se autenticar para liberar regras pré-definidas. O administrador pode optar por receber um pedido de autorização no momento do acesso, com a capacidade de liberar ou bloquear o ticket. Pode substituir o port knocking e a VPN convencional em alguns casos.
Este documento descreve como configurar hosts virtuais dinâmicos no Apache para um ambiente de desenvolvimento. Ele explica como usar variáveis para criar hosts virtuais e mapear subdomínios para pastas de sites, permitindo adicionar novos projetos sem reiniciar o Apache. Ele também discute como definir a variável APPLICATION_ENV para o Zend Framework.
O documento resume as principais novidades da versão 3.0 do Zabbix, incluindo criptografia aprimorada, previsão e tendências, descoberta automática de serviços do Windows, melhorias de desempenho e suporte a múltiplos processos de escalador.
Como migrar seu ambiente de desenvolvimento para LinuxMarcelo Sabadini
O documento apresenta como migrar o ambiente de desenvolvimento para Linux. Ele discute o que é necessário para começar, como instalar o sistema operacional Ubuntu e ferramentas como Apache, PHP, MySQL e Subversion. Também fornece exemplos de como usar comandos da linha de comando para automatizar tarefas e converter arquivos entre codificações de caracteres.
Minicurso de Ruby on Rails que ocorreu de 25/11/2014 até 28/11/2014 no Instituto Federal de Educação Ciência e Tecnologia do Sudeste de Minas Campus Barbacena
O documento apresenta uma introdução ao framework Ruby on Rails, descrevendo seus principais recursos e componentes. Em seguida, passa a detalhar os passos para construir uma aplicação simples de gerenciamento de tarefas utilizando Rails, incluindo configuração inicial, modelagem de dados, testes, deploy e customização visual.
1) O documento apresenta uma introdução à linguagem Ruby e ao framework Ruby on Rails, incluindo suas características, instalação e estrutura básica de projetos.
2) As boas práticas de Rails são descritas, como convenções de nomenclatura e geração de código através de scaffolds e migrations.
3) Ferramentas como form helpers, partials e validações são explicadas para auxiliar no desenvolvimento de aplicações web com Rails.
O documento discute a linguagem de programação Rust. Apresenta como o autor conheceu e começou a usar Rust, destacando características como tipos seguros, gerenciamento de memória sem garbage collector e foco em segurança e desempenho. Também mostra exemplos básicos de código Rust e como criar um site simples e fazer requisições na web usando Rust.
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
Slides que utilizei para ministrar uma palestra sobre Desenvolvimento WEB com Ruby on Rails no IV Congresso de Iniciação Científica da Faculdade Redentor de Itaperuna / RJ.
Versão PDF aqui: https://www.dropbox.com/s/2fkwksu00chm7nu/presentation.pdf
Mini-curso realizado no CESOL 2009 em Fortaleza na UFC campos do PICI, ministrado por mim Targino Silveira.
Nesse mini-curso viso preparar as pessoas para iniciarem a fazer pequenas aplicações e ao terminarem o mini-curso já sabendo com incluir, editar, excluir, pesquisar registros; alterar templates, trabalhar com migrations e uma outra serie de procedimentos.
O mercado de internet evolui em uma velocidade muito rápida, se não formos capazes de acompanhar as evoluções e apresentar inovações, ficamos para trás. Ruby e Rails vem trazer ao mundo do desenvolvimento web a produtividade e alegria necessária!
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
O documento descreve os conceitos fundamentais de REST e HTTP. Explica que REST usa o protocolo HTTP e seus métodos como GET, POST, DELETE e PUT para acessar recursos identificados por URIs de forma uniforme, stateless e cacheável através de camadas. Também apresenta exemplos de implementação de serviços RESTful usando o framework CherryPy em Python.
O documento fornece uma introdução abrangente sobre PHP, incluindo sua história, características, sintaxe e conceitos fundamentais. É destacado que PHP é uma linguagem de script open source amplamente usada para desenvolvimento web, executada no servidor, e que suporta programação procedural e orientada a objetos. Exemplos de código PHP demonstram tipos de dados, arrays, funções e outros elementos da linguagem.
Este documento descreve um script para automatizar backups do servidor pfSense usando o comando wget no cron. O script usa wget para fazer download de um arquivo XML contendo as configurações do pfSense em um diretório especificado, adicionando a data e hora no nome do arquivo. O cron é configurado para rodar o script uma vez por dia as 18:00 horas para garantir backups automáticos regulares.
Este documento descreve a implementação de um servidor Linux Ubuntu para fornecer serviços de firewall, proxy e arquivo. Ele detalha a instalação do Ubuntu Server, configuração do firewall Iptables e DHCP, implementação do servidor proxy Squid e servidor de arquivos Samba, e acesso remoto via SSH e Webmin.
Caio Cutrim é um entusiasta de Node.js e programador full-stack. Ele teve seu primeiro contato com programação web em 2007 e é auto-didata em informática e músico. O documento discute os problemas das arquiteturas bloqueantes em linguagens como Python, Java e PHP, e como Node.js resolve isso usando I/O não-bloqueante e event loop.
O documento descreve o PhantomJS, um "browser" sem interface gráfica que roda no console e permite executar testes funcionais de JavaScript e acessar e manipular páginas web. Ele suporta padrões web como DOM, CSS e JSON e pode ser usado com frameworks de teste como Jasmine ou para integrar testes com Capybara no Ruby.
PHP Watchdog integra-se ao iptables e ao SSH com o objetivo de abrir portas e túneis sob demanda por um período determinado. O usuário deve se autenticar para liberar regras pré-definidas. O administrador pode optar por receber um pedido de autorização no momento do acesso, com a capacidade de liberar ou bloquear o ticket. Pode substituir o port knocking e a VPN convencional em alguns casos.
Este documento descreve como configurar hosts virtuais dinâmicos no Apache para um ambiente de desenvolvimento. Ele explica como usar variáveis para criar hosts virtuais e mapear subdomínios para pastas de sites, permitindo adicionar novos projetos sem reiniciar o Apache. Ele também discute como definir a variável APPLICATION_ENV para o Zend Framework.
O documento resume as principais novidades da versão 3.0 do Zabbix, incluindo criptografia aprimorada, previsão e tendências, descoberta automática de serviços do Windows, melhorias de desempenho e suporte a múltiplos processos de escalador.
Como migrar seu ambiente de desenvolvimento para LinuxMarcelo Sabadini
O documento apresenta como migrar o ambiente de desenvolvimento para Linux. Ele discute o que é necessário para começar, como instalar o sistema operacional Ubuntu e ferramentas como Apache, PHP, MySQL e Subversion. Também fornece exemplos de como usar comandos da linha de comando para automatizar tarefas e converter arquivos entre codificações de caracteres.
Minicurso de Ruby on Rails que ocorreu de 25/11/2014 até 28/11/2014 no Instituto Federal de Educação Ciência e Tecnologia do Sudeste de Minas Campus Barbacena
O documento apresenta uma introdução ao framework Ruby on Rails, descrevendo seus principais recursos e componentes. Em seguida, passa a detalhar os passos para construir uma aplicação simples de gerenciamento de tarefas utilizando Rails, incluindo configuração inicial, modelagem de dados, testes, deploy e customização visual.
1) O documento apresenta uma introdução à linguagem Ruby e ao framework Ruby on Rails, incluindo suas características, instalação e estrutura básica de projetos.
2) As boas práticas de Rails são descritas, como convenções de nomenclatura e geração de código através de scaffolds e migrations.
3) Ferramentas como form helpers, partials e validações são explicadas para auxiliar no desenvolvimento de aplicações web com Rails.
O documento discute a linguagem de programação Rust. Apresenta como o autor conheceu e começou a usar Rust, destacando características como tipos seguros, gerenciamento de memória sem garbage collector e foco em segurança e desempenho. Também mostra exemplos básicos de código Rust e como criar um site simples e fazer requisições na web usando Rust.
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
Slides que utilizei para ministrar uma palestra sobre Desenvolvimento WEB com Ruby on Rails no IV Congresso de Iniciação Científica da Faculdade Redentor de Itaperuna / RJ.
Versão PDF aqui: https://www.dropbox.com/s/2fkwksu00chm7nu/presentation.pdf
Mini-curso realizado no CESOL 2009 em Fortaleza na UFC campos do PICI, ministrado por mim Targino Silveira.
Nesse mini-curso viso preparar as pessoas para iniciarem a fazer pequenas aplicações e ao terminarem o mini-curso já sabendo com incluir, editar, excluir, pesquisar registros; alterar templates, trabalhar com migrations e uma outra serie de procedimentos.
O mercado de internet evolui em uma velocidade muito rápida, se não formos capazes de acompanhar as evoluções e apresentar inovações, ficamos para trás. Ruby e Rails vem trazer ao mundo do desenvolvimento web a produtividade e alegria necessária!
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
1) O documento apresenta um workshop sobre MongoDB, um banco de dados não-relacional, discutindo seus principais recursos e como implementá-lo;
2) MongoDB armazena dados em formato de documentos JSON e é uma alternativa ao MySQL para casos que demandem alta performance, escalabilidade e flexibilidade de esquema;
3) O documento mostra como modelar dados, fazer operações básicas e implementar um sistema de blog usando MongoDB e PHP.
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Julio Betta
Slides que utilizei para ministrar uma palestra sobre Desenvolvimento WEB com Ruby on Rails no IV Congresso de Iniciação Científica da Faculdade Redentor de Itaperuna / RJ em Novembro de 2011.
O documento apresenta os bancos de dados NoSQL, discutindo o que são, exemplos como CouchDB, MongoDB e Redis, e demonstrando códigos de exemplo para cada um utilizando Python. O palestrante é apresentado como desenvolvedor Python experiente e especialista em bancos de dados NoSQL.
Navegadores por de baixo dos panos - Ana Luiza BastosiMasters
O documento apresenta informações sobre:
1) A estrutura e componentes principais de um navegador da web, incluindo a interface do usuário, engine do navegador, engine de renderização e componentes de rede.
2) O fluxo de renderização de páginas web, incluindo a construção da DOM a partir do HTML, CSSOM a partir do CSS e árvore de renderização.
3) Técnicas para otimizar o critical rendering path como priorizar recursos, async/defer scripts e code splitting.
O documento discute o crescimento da popularidade do framework Ruby on Rails no Brasil em 2009. Apresenta as principais características da linguagem Ruby como orientada a objetos, tipagem dinâmica e meta-programação. Exemplifica o uso de Ruby on Rails para desenvolvimento web comparando com Java e Scala. Defende que Rails permite simplificar e tornar possíveis aplicações complexas.
O documento descreve a configuração de um servidor PDC Samba em um sistema CentOS, incluindo a instalação de pacotes necessários como Samba, Squid e SARG. Os principais pontos abordados são a criação de usuários e grupos, compartilhamentos, configuração do smb.conf e mapeamento de grupos.
O documento resume as principais funcionalidades do framework Rails para desenvolvimento web utilizando a linguagem Ruby, como a arquitetura MVC, convenções sobre configuração e padrão REST. Também apresenta os passos iniciais para criação de uma aplicação Rails para gerenciamento de finanças pessoais.
O documento descreve como criar os arquivos de template header e footer para reutilização em todo o projeto PHP/MySQL. Também cria uma página inicial com links para as funcionalidades do sistema de cadastro de clientes, como gerenciamento e cadastro de novos clientes.
O documento fornece instruções sobre como estruturar e gerenciar projetos Java usando a ferramenta Ant. Ele explica como criar um arquivo build.xml e estruturar diretórios para armazenar código-fonte, classes compiladas e outros artefatos. Também descreve alvos comuns no build.xml como compilar, empacotar, testar e implantar aplicações.
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
4. História
Ruby Criada em 1993 por Yukihiro “Matz” Matsumoto
Somente em 1998 Ruby começou a aparecer no ocidente
atraves de Dave Thomas e Andy Hunt
Em 2003, o framework Rails começou a ser escrito pelo
Dinamarques David Hansson
Em 2004 Rails foi publicado
Em 2010 lançamento do Rails 3.0
5. Um pouco de Ruby
5.times { print ‚Blaaa‛ }
> Cinco vezes imprima “Blaaa”
exit unless ‚flisol‛.includes? ‚iso‛
> Termine a menos que “flisol” contenha(ou inclua) a palavra
“iso”
[‘fred’, ‘guilherme’, ‘pedro’].each do |pessoa|
puts pessoa.capitalize
end
> Com as palavras „fred‟, „guilherme‟ e „pedro‟: pegue cada
pessoa e a imprima com a primeira letra maiúscula
7. Convenções - REST
Exibir/Buscar Criar Alterar Remover
REST/HTTP GET POST PUT DELETE
Rails (actions) show create update destroy
SQL select insert update delete
8. Instalação
MAC OSX & UBUNTU
http://github.com/danielvlopes/ruby-unix/
WINDOWS
http://railsinstaller.org/
9. Iniciando um Projeto
# Criando uma aplicação
rails new flisol -d postgresql
cd flisol/
# Inicia o servidor
rails server
# URL local da aplicação
http://localhost:3000/
10. Estrutura de Pastas
Arquivo Função
config/database.yml Contém informações para conexão
com o banco de dados
config/routes.rb Rotas das requisições HTTP
app/controllers Arquivos escritos em Ruby da
camada de controle
app/helpers Classes que facilitam algumas tarefas
da view
app/models Arquivos escritos em Ruby da
camada de modelo
app/views Contém uma pasta pra cada controller
que sua aplicação tiver
db/migrate Arquivos de migração, usados para
atualizar seu Banco de Dados
11. Scaffold
# Gerando modelo, controle e visões
rails generate scaffold user first_name:string
last_name:string
db/migrate/20130426210526_create_users.rb
# Cria Banco de Dados
rake db:create
# Atualiza o Banco para versão mais nova
rake db:migrate
# Criando usuário via console
User.create first_name: “Maria”, last_name: “Silva”
13. Operações Básicas
# Quantidade de registros de usuários
User.count
# Primeiro registro de usuário
u = User.first
# Atributo first_name
u.first_name
# Método full_name
u.full_name
# Atualizar um atributo
u.update_attribute(:last_name, “Ultimo Nome”)
14. Validações
# Validando a presença de :first_name
validates :first_name, :presence => true
# => true
User.create(:first_name => “Jaum”).valid?
# => false
User.create(:first_name => nil).valid?
# Mostrando erros
u = User.create
u.errors # => {:first_name=>[“can’t be blank”]}
u.save # => false
u.save! # => ActiveRecord::RecordInvalid:
Validation failed: First name can’t be blank
- Alguemaquijáprogramaemalgumalinguagem?- Conhece Ruby, conhece Rails?- Praquemconheceessapalestraébemintrodutóriamesmo…- Trabalhona MDL Sistemas, e tambémsouinicianteem Ruby, conheço e trabalho com Ruby a menos de 1 ano
Existe um eventochamadoRubyConfemSãoPauloqueérealizadotodoano e no anopassado a nossaequipefoiaté o evento- Essasloucasaitrabalhamcomigo =)
- O eventoépatrocinadopelaLocaweb…. Maisseilah, tem gentequenãogosta da Locaweb…. Eugosto =)
Então, euvoucontar um pouco da história do Ruby pravocês…Criadaem 1993 por Yukihiro Matsumoto, surgiu no ocidenteem 98 atraves de Dave Thomas e Andy HuntEm 2003 o framework Rails começou a serescritopelodinamarques David Hansson e somenteem 2004 foipublicadasuaprimeiraversãoEm 2010 foi um grandemarcoquandosurgiu o Rails 3.0
# Testarcódigos no consoleA leitura do Ruby émuitoclara, como nesses exemplos:CincovezesimpraBlaaaTermine a menosque “flisol” contenha (ouinclua) a palavra “iso”Com as palavras “fred”,”guilherme” e “pedro”: peguecadapessoa e a imprima com a primeiraletramaiúscula
Um poucosobre o MVC do RailsO Browser fazumarequisiçãopara o WebServerQuebusca no arquivo de rotas o quefazer com a URL requeridaE então o Dispatcher encontra o controller.O controller solicita/ounão, aoumachamada no model, quepodefazerumarequisiçãoaobanco de dados e retornaosvaloressolicitadosO controller renderiza a View e respondeaoWebServerqueentrega a requisiçãofeitapelo Browser
Um pouco de Convenção RESTExistemosmétodos de requisições GET, POST, PUT e DELETEA convenção SUGERE queusemos GET para o método show no rails, POST para create, PUT para update e DELETE para destroyIssonãoquerdizerquevocêé obrigado a obedeceressa “sugestão”A ação show, seria o select do SQL, create seria o insert, update o proprio update e o destroy o delete
Nãoqueroperdermuito tempo ensinandocomoinstalar Ruby ou o Rails, entãodeixeiessesdois links aquiO repositório do danielvlopesestásempreatualizado com um dos maisfáceispasso-a-passosobreinstalação de Ruby emambiente UnixE para windows, vcpodebaixar o instaladoratravés do site railsinstaller.orgÉmuitosimpesl =)
Vamosiniciarcriando um projeto do RailsNo comando RAILS NEW, passamos o nome do projetoquequeremosiniciar o desenvolvimentoOpcionalmenteeupassei a opção “-d postgresql” jáinformando a qualbanco de dados euireiusarAbrimos a basta do projeto e entãopodemosexecutar o nossoservidorpratesteA URL de acessoserialocalhostpassando a porta 3000 (executaroscomandos no terminal)
Vamosfalar um poucosobre a estrutura de pastas queforamgeradasOArquivoconfig/database.yml, contéminformaçõesparaconexão com o banco de dadosConfig/routes.rbguarda as rotas das requisições HTTPApp/controllers arquivosescritosem Ruby da camada de controleApp/helpers classes quefacilitamalgumastarefas da viewApp/models arquivosescritosem Ruby da camade de modeloounegócioApp/views contémuma pasta pracada controller quesuaaplicaçãotiverDb/migrate arquivos de migração, usadospraatualizarseubanco de dados
Falando um poucodessafunçãomágica do rails, o SCAFFOLDNãoé a forma recomendadapra se fazerumaaplicação, maispraajudaragentenessaapresentaçãoireiusarele e explicaroqueelefazNóspassamos a função rails generate scaffolg, logo dizemos o nome do model, no singular e de preferencia ingles, e osatributoscomofirst_name do tipo string e last_name do tipo stringUm dos arquivosgeradopelo scaffold foiumamigraçãopara o banco de dados, Primeiramentenósprecisamoscriar o banco de dados com “rake db:create”E executar a função “rake db:mgirate” paraexecutarnossoarquivo de migraçãocriadopeloscaffolgAgora abrimos o console e vamoscriar um novo usuário de forma manual
O Scaffold adicionou no nossoarquivo de rotas, umachamadapara o controller :usersNousers_controllerencontramososmétodos index, show, new, edit, create, update e destroyNo método index, vemosqueeletentatrazerTodososusuários e atribuir o resultadopraumavariável @users e responder no formato html oujsonEssavariavel @users tem um arroba “@” nafrente, quepermiteseracessivelnacamada de visãoEm views/users/index.html.erbdiz “peguecadausuário” e imprimaseufirst_name e last_name. Tambémémostrado links para “Exibir”, “Editar” e DeletarVamosabrir o model de usuário e vemosque o model estáliberandoacessoaosatributos :first_name e :last_nameVamoscriar um métodoaquichamadofull_nameE vamostestarele no show.html.erb
Voltandoao console, vamosfalar um poucosobreoperaçõesbásicas no ModelA partir do momentoqueseuobjetoherdacaracterísticas do ActiveRecord, elevemcheio de métodosprafacilitarsuavida no desenvolvimentoContando a quantidade de registros de usuários com User.countTrazendo o primeiroregistro de usuário e atribuindoele a variavel “u”Pegandoatributofirst_name de “u”Acessando o métodofull_name de “u”Atualizando um atributo com update_attribute
Vamosvalidar a presença de :first_name,issoquerdizerqueesseatributodeveráterseupreenchimentoobrigatório.Abrindo o model de User vamosadicionar a linha do validatesNo console vamostestar a inclusão do usuárioJãum e verificar se o registroévalidoAgora testaremos um registroinvalidoAinda no console, conseguimosteracessoaoserros da nossaaplicação com o método errorsPodemosanalisar a se o objetopodeser salvo com .saveE podemosretornar um erro com .save! (beng)
Queroapresentartambémoutrasformas de validaratributos no modelValidando a presende de :nome e :ano, vocêpodevalidarmais de um atributonamesmalinhaValidando ANO comonumericoValidandoinclusao de ANO entre 2009 a 2099Validando o tamanho de nome com no mínimo 4 caracteresE validando um format with expressão regular
A comunidade Ruby possuiumacomunidadebastanteativa de programadoresquecompartilhamcódigo. Para facilitaressecompartilhamento, a comunidade Ruby inventou as chamadasRubyBems, ou “GEMs”. Vocêpodeencontra-las no rubygems.orgUm exemplo de gem seria a simple_form, queauxilianacriação de formulários. Seucódigopodeseracessado no githubComo instalaruma GEM, abra o arquivoGemfile, e inclua gem passando o nome da gem entre aspas, opdionalmentevocêpodepassar a versão da gem quequerusarLogo, no terminal digitamos bundle install paraatualizar as gems
Tambémquerolembrarquemantemosumacomunidade no facebook, o ruby on cerradoE deixaralguns links paraestudosobre Ruby e RailsPerguntas?
Esperoqueiniciem um estudosobre rails e quetenhamgostadodessaapresentação.Obrigado!