• Nenhum resultado encontrado

CAPÍTULO 4 - RUBY ON RAILS – O FRAMEWORK

4.4 Frameworks do Rails

Todas as características apresentadas até agora são implementadas pelos diversos frameworks presentes no Rails, são eles: Active Record, Action Pack, Action Mailer, ActiveSupport, Action Webservice. A seguir temos a breve descrição de cada framework.

4.4.1 Active Mailer

Esse framework é responsável pelo envio e recebimento de emails. Nele o framework Action Mailer poderá interagir com o programa construído pelo desenvolvedor, por exemplo, pode-se fazer um blog13 que receba as matérias através de e-mail, não precisando que o usuário efetue seu login14 no site para poder enviar a mensagem (JUNQUEIRA, 2007, p. 95).

Capítulo 4 Ruby on Rails – O Framework

4.4.2 Action Pack

Segundo Junqueria (2007, p. 95) o Action Pack “é responsável por fazer a separação da resposta de uma requisição Web em uma parte de controle (que faz a lógica) e outra de visão (processamento de um template15)”. “Ele é o maestro no despacho adequado de chamadas a métodos, redirecionamento a páginas e tudo que tem a ver com o fluxo de ações pelo aplicativo” (AKITA, 2006, p. 37).

4.4.3 Active Record

Esse framework é responsável por mapear as tabelas da base de dados e os objetos da aplicação, criando assim um modelo de persistência do domínio onde a lógica e os dados são tratados de uma única forma (JUNQUEIRA, 2007, p. 96). “Ele é uma implementação do padrão mapeamento objeto-relacional (ORM – Object Relacional Mapping) chamado Active Record” (JUNQUEIRA, 2007, p. 107)

Segundo Thomas & Hansson (2005, p. 16), por padrão em um banco de dados o Active Record “[...] mapeia tabelas para Classes, linhas para Objetos e colunas para Atributos de objetos”.

“Ele tem vantagens e desvantagens, porém, os créditos de que o Rails representa um grande ganho de produtividade pode ser atribuído, em grande parte, a este pacote” (AKITA, 2006, p. 37).

Ou seja, pode-se dizer que esse framework é responsável pela persistência dos dados (AKITA, 2006).

Junqueira (2007, p. 107) diz que, “A principal contribuição do padrão de projeto ORM ou Active Record é auxiliar em dois problemas: falta de associações e herança”. Algumas das principais funcionalidades do Active Record são:

15

Template (ou "modelo de documento") é um documento sem conteúdo, com apenas a apresentação visual (apenas cabeçalhos por exemplo) e instruções sobre onde e qual tipo de conteúdo deve entrar a cada parcela da apresentação. Mais informações em: <http://pt.wikipedia.org/wiki/Web_template>

 Mapeamento automatizado entre as classes e tabelas, atributos e colunas: Apenas utilizando o conceito de “Convention over Configuration” (Seção 4.3) é possível mapear automaticamente a tabela em questão, herdando assim métodos/operações como as de leitura e escrita dos registros no banco de dados.

 Associações entre os objetos controlados através de macros simples de metaprogramação: Os principais tipos de associações são: um-para-um, um-para-muitos e muitos-para-muitos. No Rails eles são utilizados com os seguintes comandos: “has_one, has_many, belongs_to, has_many_and_belongs_to_many”. Ao exemplo de uma tabela dependentes pertencer a uma tabela clientes seria utilizado o comando (belongs_to cliente) no model (dependente.rb), dessa forma a associação já seria entendida pela aplicação Rails.

 Agregação de objetos de valor controlados por macros simples de metaprogramação: “Caso existam agregações, podem ser utilizadas as macros composed_of”. Essas agregações servem para unir o conteúdo de duas colunas de uma tabela. Um exemplo mais comum é o uso de duas colunas (nome e sobrenome) para armazenar separadamente o nome e sobrenome de um usuário em uma tabela. Dessa forma utiliza-se a macro composed_of para unir a duas colunas e obter o resultado em uma única coluna.

 Regras de validação: “Existem várias facilidades para fazer a validação dos dados no servidor. Os validadores geram mensagens para o usuário no caso em que as regras não são satisfeitas”. Os validadores servirão, por exemplo, para certificar que as informações que serão inseridas no banco de dados estão de acordo com as especificações do sistema.

 Callbacks: “Calbacks permitem que sejam disparadas ações (lógica) antes ou depois de alteração de estado de um objeto”. Um callback é uma forma de interceptar o momento de execução de uma operação de persistência em um modelo, seja qual ela for, e atuar sobre a mesma de acordo com a necessidade. Exemplos de callbacks são: before_save e before_create.

Capítulo 4 Ruby on Rails – O Framework

 Observers: “Observers são classes que respondem aos callbacks para implementar comportamento semelhante ao de triggers fora da classe original”. Um observer escuta os eventos de mudança de um outro objeto.  Suporte a transações: O Active Record suporta transações “[...] tanto nos

objetos como no nível do banco de dados”.

 Abstação de banco de dados através de adaptadores simples com conector compartilhado: “O Active Record pode se conectar com praticamente qualquer banco de dados, pois utiliza abstração do banco de dados”. Por padrão o Rails traz suporte para os seguintes bancos de dados: MySQL, PostgreSQL, SQLite, Oracle, SQLServer e DB2.(JUNQUEIRA, 2007, p. 107-110)

4.4.4 Action WebService

Segundo Junqueria (2007, p. 95), o Action WebService “fornece mecanismos para publicar APIs16 de Web Service17 interoperacionais com Rails sem dispender muito tempo aprofundando nos detalhes de protocolo”.

Este pacote fornece ao aplicativo funcionalidades para que possa responder como se fosse um Web Service, ou seja, seu aplicativo deixa de ser apenas uma interface gráfica via HTML para se tornar um provedor de APIs a outros sistemas e aplicativos. (AKITA, 2006 p. 37).

4.4.5 Active Support

Segundo Akita (2006, p. 37), o Active Support “é responsável por tomar conta da carga de outras bibliotecas, dependências, recursos avançados como breakpoint em tempo de execução, cache18, logs19, plugins20 e muito mais”.

16

API é um conjunto de rotinas e padrões estabelecidos por um software para utilização de suas funcionalidades por programas aplicativos. Mais detalhes em: <http://pt.wikipedia.org/wiki/API>

17 Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Mais detalhes em: <http://pt.wikipedia.org/wiki/Web_service>

18

Cache é um dispositivo de acesso rápido. Mais detalhes em: <http://pt.wikipedia.org/wiki/Cache>

19 Log é o termo utilizado para descrever o processo de registro de eventos relevantes num sistema computacional. Mais detalhes em: <http://pt.wikipedia.org/wiki/Log_de_dados>

“É uma coleção de várias classes utilitárias e extensões de bibliotecas padrão que foram consideradas úteis para o Rails” (JUNQUEIRA, 2007, p. 96). O Active Support é um conjunto de bibliotecas que são compartilhadas com os componentes Rails utilizadas para estendê-lo internamente (THOMAS & HANSSON, 2005, p. 242).

Documentos relacionados