Login:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

Ruby on Rails

Feed da seção Ruby on Rails

Newsletter de Ruby on Rails


Sexta-feira, 26/01/2007 - 15:13 - Por Carlos Eduardo
Seções relacionadas:

Flex e-Genial Scaffold

Olá pessoal. Já começamos o ano com muita coisa boa acontecendo. David acaba de lançar o Ruby on Rails 1.2 com muita novidade e uma delas é o RestFull, que torna mais fácil integrar aplicações Ruby on Rails com aplicações externas. Imagine em uma única url sua aplicação fornecer serviços como RSS, WebService e conteúdo dinâmico mudando somente a extensão. Esta é uma das funcionalidades que vai estremecer o desenvolvimento web.

Acaba de sair do forno também o Flex 2.0.1 com algumas melhorias significativas que com certeza vai fazer a diferença na hora de desenvolver aplicações RIA corporativas, abaixo segue as grandes mudanças:

  1. Suporte ao MAC OSX;
  2. SDK Ganhou um pacote a mais o mx.modules;
  3. CSS em tempo de execução;
  4. asDoc como parte do Flex Builder;
  5. Rendenização de textos;
  6. 290 Bugs corrigidos;
  7. Flex Builder baseado agora no Eclipse 3.2 e com maior performance;
  8. Suporte para o "Apollo". Se não conhece ainda o Apollo procure conhecer, você irá entender de que forma aplicações web´s irão revolucionar as experiências e usabilidade dos usuários finais.

E como não posso ficar de fora dessas grandes mudanças e sempre focado em colaborar com a comunidade Brasileira, resolvi atacar de generators. É...generators mesmo. Você deve estar se perguntando o que é isso, come com pão francês? Ou com bolachinha salgada? É mais que isso!

Um dos conceitos de desenvolvimento Ruby on Rails é automatizar tarefas repetitivas. Desta forma, existem vários plugins e geradores de códigos que vão te ajudar no dia a dia. Em sua estrutura interna, o Rails possui um generator chamado Scaffold, e a idéia básica é que a partir de uma tabela existente no banco de dados, com o simples comando script/generate scaffold Tabela (singular), ele crie automaticamente uma tela com o form para cadastrar, editar, deletar e listar os dados desta tabela, assim automatizando as tarefas.

Eu sou um cara que gosto de automatizar tarefas repetitivas, e usufruindo deste tipo de recurso resolvi então criar o Flex e-Genial Scaffold. O FES é um generator que tem por objetivo automatizar tais tarefas para a criação de aplicações RIA, unindo Ruby on Rails com Flex 2, e, seguindo a mesma linha do Scaffold original do Rails, porém com a view em Flex. O projeto está hospedado no RubyForge sobe a licença MIT, assim você pode baixar usar, distribuir, vender e até dar de presente para seu tio favorito.

Neste artigo você irá aprender a instalar e a criar uma breve aplicação usando o FES. Você verá como é fácil ganhar tempo eliminando as tarefas corriqueiras.

O primeiro passo agora é instalar o flex_egenial_scaffold. Como já expliquei em outras matérias, o Ruby tem um recurso que simplesmente faz a diferença: é o GEM. Com ele é possível instalar plugins, generators, aplicações e bibliotecas que vão ajudar no dia dia. Presumo que você já tenha instalado o Ruby e o Rails, certo? Caso ainda não, procure aqui mesmo no site como deixar tudo preparado para criar aplicações com alguns passes de mágicas.

Ok. Então abra o terminal ou o cmd do windows e digite o seguinte comando.

Gem install flex_egenial_scaffold_generator

Aguarde alguns segundos até aparecer a mensagem a seguir:

Successfully installed flex_egenial_scaffold_generator-0.0.1

Ok. Agora o FES foi instalado com sucesso. Se tiver interesse em aprender como funciona o generator, no Windows a instalação do FES fica em:

C:\ruby\lib\ruby\gems\1.8\gems\flex_egenial_scaffold_generator-0.0.1

Agora estamos prontos para criar nossa primeira aplicação com uma simples tela que vai cadastrar, atualizar, deletar e listar os dados de uma tabela.

Antes de tudo, crie um banco de dados. Neste exemplo, vamos utilizar o MySQL. Crie um banco chamado "flexrailsdb" e em seguida adicione uma tabela chamada "Clientes" com os seguintes campos: id, nome, email1, email2, observacacao e numero_banco.

Então temos agora essa estrutura:

  • Banco de dados: flexrailsdb
  • Tabela 1: clientes
  • Campos da tabela clientes:
  • Id : Int
  • Nome: Varchar
  • Email1: Varchar
  • Email2: Varchar
  • Observação: Text
  • Numero_banco: Varchar

Depois de criado o banco e sua estrutura, ainda com o cmd aberto vá até c:\, cd c:\. Ou, se você estiver no Linux, cd \home\seuUsuario.

Digite o seguinte comando:

Rails minhaAplicacao

Espere criar todo o esqueleto da aplicação. Em seguida digite:

cd minhaAplicacao

Edite o arquivo database.yml que está dentro de minhaAplicacao/config. Adicione os dados de comunicação com o banco.

  • development:
  • adapter: mysql
  • database: flexrailsdb
  • username: root
  • password:

  • host: localhost

No terminal, vamos fazer uma mágica. Digite:

Usuário Windows:

Ruby script/generate flex_egenial_scaffold cliente

Usuário Linux

script/generate flex_egenial_scaffold cliente

Observação: Rails trabalha com pluralização, então a idéia é sempre usar tabela no plural e model no singular, que foi o nosso caso. Tabela clientes (plural), model no singular.

O FES criou automaticamente o model, o controller e o fonte MXML da aplicação Clientes. Na seguinte estrutura de diretórios:

minhaAplicacao/app/controllers
  • clientes_controller.rb
minhaAplicacao/app/models
  • cliente.rb

E a aplicação Flex em minhaAplicacao/public/sis/clientes.

  • _listaGrid.mxml
  • clientes.mxml

Estes são os arquivos fundamentais da aplicação clientes.

Agora que já estamos com a estrutura da nossa aplicação, precisamos então compilar o fonte clientes.mxml para criar o bytecode clientes.swf que será o front-end da tela de clientes.

Primeiro vamos realizar duas pequenas "mudanças"!

Dentro da pasta minhaAplicacao/lib/tasks, existe um arquivo chamado comp.rake. É ele o responsável por chamar o compilador do Flex SDK e gerar o bytecode. Então edite este arquivo e altere o caminho:

home = "F:/FAMILIA_ADOBE/FLEX_SDK_2"

Este é o caminho onde esta instalado o seu Flex SDK. Se você não tem ainda o Flex SDK instalado, veja a matéria de como realizar esta instalação passo a passo .

É fundamental extrair os arquivos em uma pasta de fácil acesso e que não tenha espaços no nome. Sugestão: c:\flex_sdk. Use um "_" no lugar dos espaços, pois assim fica fácil para a tarefa comp encontrar o compilador Flex.

O próximo passo é editar o arquivo flex-config.xml que está dentro da pasta Caminho/de/onde/esta/a/instalação/do/Flex/SDK/frameworks.

Encontre a linha:

<!-- File containing cached system font licensing information 

produced via
java -cp mxmlc.jar flex2.tools.FontsSnapshot (fontpath)
Will default to winFonts.ser on Windows XP and
macFonts.ser on Mac OS X, so is commented out by default.

<local-fonts-snapshot>localFonts.ser</local-fonts-snapshot> -->

Retire a seguinte linha de dentro dos comentários

localFonts.ser

Ficando assim:

<!-- File containing cached system font licensing information 

produced via
java -cp mxmlc.jar flex2.tools.FontsSnapshot (fontpath)
Will default to winFonts.ser on Windows XP and
macFonts.ser on Mac OS X, so is commented out by default.
-->

<local-fonts-snapshot>localFonts.ser</local-fonts-snapshot>

Agora, como já temos configurado o caminho do Flex SDK e as fontes, é hora de compilar. Logo, ainda no terminal, digite:

rake comp:flex arq=clientes

  • rake: É o programa responsável por executar uma tarefa;
  • comp: É o nome da nossa tarefa;
  • flex: É o namespace da tarefa;
  • arq=: É o nome da tabela/arquivo/fonte/mxml criado.

Aguarde por alguns segundos até aparecer a mensagem a seguir:

Executando tarefa de compilacao flex_egenial_scaffold

Tarefa concluída!

Você irá perceber que, dentro da pasta minhaAplicacao/public/sis/clientes, existe um arquivo chamado clientes.swf que é o bytecode gerado pelo compilador flex.

Vamos testar! Levante o servidor da aplicação com o seguinte comando:

Usuários Windows:

Ruby script/server

Usuário Linux:

Script/server

Aguarde até aparecer a mensagem a seguir:

C:\minhaAplicacao>ruby script/server|

=> Booting WEBrick... |

=> Rails application started on http://0.0.0.0:3000 |

=> Ctrl-C to shutdown server; call with --help for options |

[2007-01-21 12:58:17] INFO WEBrick 1.3.1 |

[2007-01-21 12:58:17] INFO ruby 1.8.4 (2006-04-14) [i386-mswin32] |

[2007-01-21 12:58:17] INFO WEBrick::HTTPServer#start: pid=2220 port=3000 |

Abra o seu browser preferido e digite http://localhost:3000/sis/clientes/.

Você deverá ver a tela abaixo:

Caso não veja, repita os passos acima.

Agora você poderá cadastrar os dados. Para editar ou deletar um registro, clique na linha correspondente listada na grid.

Viu como é simples e fácil integrar e criar aplicações Ruby on Rails com Flex 2? Agora te convido a assistir esse screencast que criei onde tem um passo a passo de como criar uma aplicação Rails usando o RadRails com o Flex e-Genial Scaffold.

Experimente também adicionar mais um campo da tabela clientes e em seguida, rodar:

  1. Ruby script/generate flex_egenial_scaffold cliente
  2. rake comp:flex arq=clientes

Em seguida dê um refresh na página e veja o que acontece.

Mude a ordem das colunas da tabela clientes e rode novamente os passos acima. Veja como o FES se comporta.

Bom, eu espero que tenham gostado. Qualquer dúvida só me enviar um e-mail, grande abraço e até a próxima...

Todos os artigos de Carlos Eduardo

18 comentários publicados

  • 1. Estranho.

    Sábado, 27/01/2007, por Charles Babagge

    Alta propaganda e marketing pessoal. Acredito que o Imasters deva filtrar melhor os seus colunistas. O autor deveria pelo menos ter a humildade de citar as referências para o seu artigo.

    Responder comentário
  • 2. Esperança sempre

    Sábado, 27/01/2007, por lando souza

    È meu amigo carlão, não percamos as esperanças, conforme os ensinamentos, persevera sempre.
    Tudo e todos obedecem a lei da evolução porque ela é eterna, cabe a nós outros, apenas confiar que nossos irmãos não tardarão em demasia a despertar uma vez que ser-lhe-á permitido sempre optar entre a grandiosidade ou a mediocridade. O tempo coloca tudo no seu devido lugar.
    Há quem segue enciumado e quem faz seguidores. Abraço ao amigo.

    Responder comentário
  • 3. Vai aqui a referência

    Sábado, 27/01/2007, por Carlos Eduardo

    Olá vou passar a referência: http://blog.egenial.com.br

    Há todos são cópias mesmo, mais cópias do meu própio blog ;-) Fico tentando imaginar como você chegou a esta conclusão que é uma cópia, sendo que eu mesmo que desenvolvi a ferramenta. Mais ta ótimo gosto de ajudar e compartilhar de alguma forma. Abraço

    Responder comentário
  • 4. Link para o Screencast

    Sábado, 27/01/2007, por Carlos Eduardo

    O link para o screencast não entrou na formatação da máteria, pra quem quizer conhecer segue ele: http://www.egenial.com.br/flex_egenial_scaffold/flex_egenial_scaffold.html

    Responder comentário
  • 5. Deu erro aqui

    Terça-feira, 30/01/2007, por alann flaubert freire

    O Artigo é realmente genial, mas aqui nao consegui compilar... olha soh:
    Executando tarefa de compilacao flex_egenial_scaffold

    clientes
    Arquivo encontrado, preparando para a compilacao, aguarde...
    Unable to access jarfile C:/FLEX_SDK/lib/mxmlc.jar
    Tarefa concluida ;-)
    rake aborted!
    Houve uma falha na compilacao... msg: 256

    (See full trace by running task with --trace)

    Responder comentário
  • 6. Interessante

    Quinta-feira, 01/02/2007, por sergio eurico

    Carlos, parabens pelo artigo. Vou achar um tempo pra dar atencao a esta integracao do Ruby com o Flex.
    Parabens, obrigado e um abraco.

    Responder comentário
  • 7. É isso ai

    Sexta-feira, 02/02/2007, por Marcos Silverio

    Carlos, considero demais pessoas como você, que dedicam parte do tempo a sistematizar e divulgar conhecimento. Pode ter certeza de que muita gente é grata por isso. Trabalho a praticamente 10 anos na área e nunca publiquei qualquer artigo, talvez por não me achar competente para tal ou por não me esforçar para arrumar um tempinho. Porém jamais escrevi para criticar a iniciativa, esforço e coragem dos que dividem o conhecimento que têm, por menor que seja é sempre útil a alguém. Por isso espero que pessoas como o Charles também compartilhem seu conhecimento ao invés de só meter a boca. Grande abraço e obrigado.

    Responder comentário
  • 8. Parabens..

    Quarta-feira, 14/02/2007, por Rogério Gonçalves

    meus parabens caro amigo Carlos, excelentes artigos os seus, li todos sobre ruby* e testei e são de primeira qualidade.. aguardo os futuros! abracos

    Responder comentário
  • 9. Muito Bom

    Domingo, 18/02/2007, por Rafael Rebelo Affonso

    Parabéns pela iniciativa. Tudo o que pesquiso a respeito de flex & ruby só dá vc nas pesquisas!
    De todos os seus tutoriais esse foi o unico que deu um probleminha.
    "Couldn't find 'flex_egenial_scaffold' generator"

    Responder comentário
  • 10. Tudo ok

    Domingo, 18/02/2007, por Rafael Rebelo Affonso

    Consegui resolver os problemas :)

    Responder comentário
  • 11. Deu error aqui também

    Quarta-feira, 21/02/2007, por Mateus Medeiros

    Unable to access jarfile C:/Arquivos_de_Programa/Adobe/Flex_Builder_2/FLEX_SDK_2/lib/mxmlc.jar Tarefa concluida ;-) rake aborted! Houve uma falha na compilacao... msg: 256 (See full trace by running task with --trace)

    alguém por favor pode me ajudar?

    Responder comentário
  • 12. Routing Error

    Sábado, 04/08/2007, por Antonio Mateus Santana

    aqui esta dando este erro no route found to match "/sis/clientes" with {:method=>:get} alguem pode me ajudar ?

    • Mauricio Daitschman - Quinta-feira, 10/04/2008

      Ola, Antonio...
      Estou tendo esse mesmo problema!"no route found to match "/sis/clientes" with {:method=>:get}"

      Gostaria de saber se ja consegiu solucionar?

      abs

    Responder comentário
  • 13. Também tive problema ao compilar

    Terça-feira, 28/08/2007, por Alessandra Cardoso

    Vi que algumas pessoas tb. tiveram o mesmo problema abaixo. Aguém conseguiu solucionar????
    Executando tarefa de compilacao flex_egenial_scaffold

    clientes
    Arquivo encontrado, preparando para a compilacao, aguarde...
    Unable to access jarfile E:Flex_SDK_2/lib/mxmlc.jar
    Tarefa concluida ;-)
    rake aborted!
    Houve uma falha na compilacao... msg: 256

    (See full trace by running task with --trace)

    Responder comentário
  • 14. Achei o erro ao compilar

    Terça-feira, 28/08/2007, por Alessandra Cardoso

    Ao comfigurar o arquivo comp.rake note que a barra que indica o caminho de instalação é diferente da usual. Ex.:
    E:/Flex_SDK_2

    Responder comentário
  • 15. Parabéns Carlos...

    Segunda-feira, 25/02/2008, por Maurício Oliveira

    Olá Carlos, parabéns pela matéria e por estar ajudando o pessoal, estou achando muito show essas facilidades na programação.

    Responder comentário
  • 16. Erro !!

    Segunda-feira, 25/02/2008, por Maurício Oliveira

    Estou com erro quando executo: Ruby script/generate flex_egenial_scaffold cliente.
    Ocorre o erro abaixo:
    uninitialized constant ScaffoldingSandbox.

    Alguém pode me ajudar ?

    • Mauricio Daitschman - Quinta-feira, 10/04/2008

      Chará... com certeza deve estar usando as versões RUBY 186 e RAIL 2!!! Eu testei com essas versões e ocorreu o erro q esta comentando...! Agora com a versão RUBY 184 e RAILS 12 ja roda perfeitinho! Resumindo, deve ser "MAIS" uma incompatibilidade dessas versões!

      abs

    Responder comentário

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

Carlos Eduardo é um grande entusiasta de linguagens que provêem produtividade aliada a diversão. Trabalha com informática há 7 anos, e como desenvolvedor há 4 anos. Hoje é proprietário da e-Genial Soluções Inteligentes, empresa dinâmica que provê Soluções em desenvolvimento Web. Ministra treinamentos de desenvolvimento web em plataformas Jee e Ruby on Rails para empresas e orgãos públicos.


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.