No caso do nokogiri, é necessário compilar código C associado à RubyGem,
por isso o comando gem exibe Building native extensions .... Depois de instalado,
o RubyGems gera documentação via ri e RDoc. Não entraremos em detalhes como
esses aplicativos funcionam pois usaremos documentações online que facilitam a
busca de informações.
Depois de instalado, é possível usar o nokogiri da seguinte forma:
require 'rubygems'
require 'nokogiri'
doc = Nokogiri::HTML('<html></html>')
require rubygems retorna falso
Não fique preocupado se o require 'rubygems' retornar falso. Como
Rubygems é muito comum, muitas ferramentas podem fazer o require
para você. O que importa mesmo é que o require da gem que você está
usando é feito com sucesso.
É importante garantir que façamos
o require do RubyGems para que ele possa
configurar o ambiente Ruby de modo a encontrar as bibliotecas instaladas, mas talvez
isso não seja suficiente. Para instalar e usar uma gem, é recomendado que você leia
a documentação disponibilizada na página da gem, pois nem sempre a instalação é
exatamente igual à que vimos anteriormente.
69
2.8. Fim!
Casa do Código
Escolhendo uma RubyGem
A comunidade Ruby é bastante efusiva em bibliotecas, então é muito provável
que já exista uma gem para resolver o seu problema! Mas antes de sair usando uma
gem que você encontrou, verifique os seguintes pré-requisitos:
Existe uma comunidade ativa de desenvolvedores, ou seja, há atividade recente
de alterações ou não há uma lista grande de bugs no tracker do projeto;
Verifique se a biblioteca possui testes unitários e melhor ainda, se a última
compilação do projeto está OK (projetos populares executam suas compila-
ções no Travis-CI [http://travis-ci.org/])
Outra dica é procurar por soluções no site RubyToolBox (https://www.
ruby-toolbox.com/). Uma solução famosa, acompanhada e usada por muita gente
é uma forma de tentar diminuir as chances de você encontrar bugs, pois alguém já
deve ter se encontrado na mesma situação e resolvido o problema.
2.8
Fim!
Ufa! Você está lendo até aqui ainda? Que bom. Cobrimos bastante coisa de Ruby,
mas é claro que a linguagem tem muito mais para oferecer. Durante o capítulo, fiz re-
ferência a diversos livros que podem trazer mais conhecimento em diversos aspectos
de Ruby. É extremamente recomendado que você os leia depois que terminar de ler
este livro, caso queira (espero que sim!) continuar sua carreira como desenvolvedor
Ruby e Ruby on Rails.
Ruby é uma linguagem fascinante, e espero sinceramente que tenha gostado.
Agora, vamos aprender o framework Ruby on Rails, e começar a fazer o Colcho.net
do início ao fim.
70
Parte II
Ruby on Rails
Capítulo 3
Conhecendo a aplicação
Para cada fato existe um conjunto infinito de hipóteses. Quanto mais você observa,
mais você enxerga.
Robert Pirsig, em Zen and the Art of Motorcycle Maintenance
Então você já aprendeu bastante da linguagem Ruby para dar os primeiros pas-
sos, mas ainda temos muito o que aprender pela frente. Durante os próximos capí-
tulos, vamos aprender mais da linguagem enquanto aprendemos o framework Ruby
on Rails.
Mas antes de começar, você sabe qual a diferença entre um framework e uma
biblioteca? Quando usamos uma biblioteca, nós programadores escrevemos nosso
código, chamando a biblioteca quando necessário. A camada entre a biblioteca e o
nosso código é bastante distinta.
O mesmo não acontece com um framework. Para se ter uma ideia, muitas vezes
o ponto inicial do sistema não é um código que você escreve. Nosso código faz o
intermédio com diversas outras bibliotecas que compõem o framework, de forma
que o resultado torna-se mais poderoso do que a soma das partes.
3.1. Arquitetura de aplicações web
Casa do Código
O Ruby on Rails não é diferente. Ele é um framework usando uma estrutura
chamada MVC -- Model View Controller, bastante conveniente para a construção de
aplicativos Web. O Rails também é usado por muitos desenvolvedores já há bastante
tempo, portanto já foi testado em diversas situações, como alta carga, ou grande
número de usuários. É fácil começar com Rails pois ele faz muito trabalho por você,
mas se aprofundar no Rails te dá ainda mais poder.
É muita coisa para aprender, mas não se preocupe, este livro está em seu poder
justamente para facilitar esta tarefa. Vamos então ver como vamos modelar nossa
aplicação e em seguida vamos ver como o Ruby on Rails vai nos ajudar a construí-la.
3.1
Arquitetura de aplicações web
Desenhar aplicações bem feitas em Ruby on Rails é um pouco mais complicado do
que simplesmente criar páginas atrás de páginas. A razão disso é que ele é prepa-
rado para criar aplicações modernas e arrojadas. Isso significa que não somente
deve responder HTML aos usuários, mas também responder de maneira adequada
para aplicações ricas em client-side,
interagindo com frameworks como Backbone.js
(http://backbonejs.org/), Ember.js (http://emberjs.com/) ou outros.
O que são aplicações ricas em client-side?