GEtna 0.6.0 (Betha) Liberado

Posted On 26 novembro, 2008

Filed under Noticias, Tutoriais
Tags: , , ,

Comments Dropped one response

Mesmo o gerador já estando disponível para uso a algum tempo eu queria finalizar algumas coisas antes de divulgar aqui no blog.

Para esse lançamento disponibilizamos alguns vídeos demonstrativos e um screencast dividido em 3 partes que exemplifica desde a instalação ate algumas funcionalidades presentes.

Screen Cast

Nota: os videos no Vimeo ficaram muito ruins, não sei se pela resolução ou pelo formato. na duvida baixe o arquivo. -.- (vou refazer os screencasts esse fim de semana)

Parte 1: instalação (VIMEO)
“Tive que remover esse link!” >Parte 1: instalação(Download)

Parte 2: Geração (VIMEO)
“Tive que remover esse link!”>Parte 2: Geração (Download)

Parte 3: Execução (VIMEO)
“Tive que remover esse link!” >Parte 3: Execução (Donwload)

Bonnus

“Tive que remover esse link!” target=”_blank”>Apresentação:

“Tive que remover esse link!” target=”_blank”>Utilização do GEtna no Windows com RadRails

“Tive que remover esse link!” target=”_blank”>Instalação do GEtna no Windows

“Tive que remover esse link!” target=”_blank”>Geração Utilizando Layout Default

“Tive que remover esse link!” target=”_blank”>Geração Utilizando Layout Depot

“Tive que remover esse link!” target=”_blank”>Geração Utilizando Layout Rails

“Tive que remover esse link!” target=”_blank”>Geração Utilizando Linha de Comando

Instalação:

Por ser um plugin nos padrões Rails e não possuindo qualquer dependência com outra ferramenta, a não ser o próprio Rails, sua instalação se torna bem trivial. O GEtna pode ser instalado, basicamente, de duas maneiras via GIT e manualmente. A maneira mais recomendada de se obter o gerador é via GIT bastando apenas se localizar dentro da pasta vendor/plugin/ dentro da aplicação Rails. Caso esteja no local certo e com GIT instalado na máquina basta utilizar o comando do Comando 1, ou utilizando o comando de instalação de Plugin do Rails descrito no Comando 2 da raiz da aplicação.

Comando 1
git clone git://github.com/LuizCarvalho/getna.git
Comando 2
Script/plugin install git://github.com/LuizCarvalho/getna.git

Esse comando, efetuado via console, pega a última versão do gerador no servidor do Github e o copia para a pasta local. Esse procedimento é o suficiente para que o gerador esteja totalmente funcional e pronto para ser utilizado.
A segunda maneira de instalar o GEtna é via download a partir do website do projeto no Github (http://github.com/LuizCarvalho/getna). Após o acesso ao site é necessário baixar o arquivo compactado (zip ou tar). A Figura 1 possui um fragmento da página onde se localiza o botão de download do projeto.

Instalação Via WEb

Instalação Manual

Após o arquivo baixado ele necessita ser descompactado e, logo após, renomeado para “getna”. Como no procedimento de instalação anterior o gerador necessita ser posicionado em no diretório referente aos plugins no projeto (vendor/plugin). Ao final de todo esse procedimento o gerador está pronto para ser utilizado.

Agradecimentos:
Silvio Fernandes e a Galera do Rails-BR

GEtna: fase de Teste

Posted On 14 novembro, 2008

Filed under Uncategorized
Tags:

Comments Dropped one response

Olá pessoal.

O Getna chega mais proximo de seu lançamento oficial. Eu com ajuda do Silvio Fernandes fizemos diversas modificações, apanhamos um pouco pro GIT, mas conseguimos doma-lo e o resultado foi muito bom.

Disponibilizei ele para testes lá no grupo rails-br e gentilmente alguns membros o testaram e reportaram alguns BUG’s. então vou agradescer ao Vinicius Luiz (Vinicius Luiz de Carvalho, meu  xará =D ), ao Junio Gonsalvez e ao Ricardo Yasuda por terem testado o GEtna e reportados alguns erros que acabei de concluir.

A versão 0.5.5 do GETna já esta no Github. quem quiser dar uma conferida:

http://www.github.com/LuizCarvalho/getna

GEtna: Gerador Funcinal

Posted On 2 novembro, 2008

Filed under Noticias
Tags: , ,

Comments Dropped one response

Galera o GEtna está em sua reta final para lançamento do Betha =D
acabei de fazer o modulo que cuida dos relacionamentos Nx1, então temo:

  • Geração de Controllers, Models e Views
  • Geração Customizada de Layouts (Disponíveis os temas default, depot e rails )
  • Geração de relacionamentos NxN e Nx1 no Modelo e funcionalidade aplicada a View
  • Helpers
  • Tests
  • Routes

Próximo passo:

  • Geração de Validações
  • Geração de Migrações

Foram feitos testes com até 1500 tabelas, nos bancos Postgres, Mysql e SQLite e nos sistemas Operacionais Linux(ubuntu) e Windows(XP).

Agora preciso da ajuda de vocês, não tenho Mac e nunca mexi em outro bancos a não ser esses três. então quem puder testar no Mac e em outro banco de dados e se possivel mandar um ScreenShot pra mim pra colocar na Monografia seria de grandississima ajuda.

OBS: O Gerador é escrito em Ruby e utilizando ActiveRecord, então isso tudo devia funcionar sem problemas, mas preciso testar no maximo de ambientes e situações possiveis para ter certeza.

Falando em Ajuda, gostaria de Agradecer a garela da Rails-Br, Cairo Noleto,Leandro Camargo, Felipe Diesel, Silvio Fernandes entre outros.

para quem quiser testar o Plugin (ainda em desenvolvimento)

http://github.com/LuizCarvalho/getna/tree/master

Abraços.

Git: Participando de um projeto OpenSource no GitHub – Comandos

Posted On 18 outubro, 2008

Filed under Dicas, Tutoriais
Tags: ,

Comments Dropped 2 responses

Então, Coloquei esse titulo porque não achei outro que descrevesse o que estou postando, então vamos a esplicação.

Estou trabalhando no GEtna (Lê se Guetna[GET+na] e não Jetna 🙂 ) em casa e no trabalho as vezes faço umas modificações e as sempre esqueço de dar push de minha casa ou no trabalho, quando tento dar push de algum dos dois dá a maior zica, encontrei a solução para o meu problema, mas ai estou com outro bem chato que me acompanha desde que começei com git, a terrivel e enjoada mensagem:

fatal: protocol error: expected sha/ref, got '
*********'

You can’t push to git://github.com/user/repo.git
Use git@github.com:user/repo.git

*********’

Como eu tenho ódio disso ai, então fui as pesquisas, demorei bastante até entrar em um gist que me levou até um post do blog do Nathaniel Felsen, e ai consegui resolver meus problemas. ok vamos lá.

Ao tentar dar um:

$ git push

Eu me deparei com o erro acima a solução encontrada é seguir os passos a seguir, usei o GEtna como exemplo:

O Caminho Certo (the Right Way)

Já vou adiantando os passos necessários para que você resolva seu problema são P6 e P8.

Esses comandos foram feitos no respositorio de local para um branch chamado working:

P1-$ git clone git://github.com/LuizCarvalho/getna.git
P2-$ cd getna
P3-$ git branch --track master origin/master
P4-$ git branch working master
P5-$ git checkout working
P6-$ git remote add working git@github.com:LuizCarvalho/getna.git
P7-$ git fetch working
P8-$ git push working working:refs/heads/working
P9-$ git config branch.working.remote working
P10-$ git config branch.working.merge refs/heads/working

Esplicando cada comando mais detalhadamente

Primeiro passo: Clonar o repositório

$ git clone git://github.com/LuizCarvalho/getna.git

Segundo passo: Entre dentro do diretório (Não tente atravessar o monitor, use o comando cd O.o)

$ cd getna

Passo três: esse eu não entendi, mas coloquei XD, como não testei não sei dizer pra que serve, mas se está no maneira certa de fazer eu não podia tirar  :), na versão original ao invés de master está edge, como não tenho nenhum branch edge coloquei meu master mesmo.

$ git branch --track master origin/master

Passo quatro:  Criando a branch Working a partir do meu master, assim eu faço meus merges (*.*) depois com mais calma

$ git branch working master

Passo cinco: Mudando de Branch (da atual para working)

$ git checkout working

Passo Seis: Adicionando Referências remotas ao meu repositório

$ git remote add working git@github.com:LuizCarvalho/getna.git

Passo Sete: Buscando e sincronizando o repositório local com o remoto

$ git fetch working

Passo 7,5: Na verdade não existe esse passo lá, mas eu achei que deveria ter algo assim O.o pra ter um caminho completo, pois se você realizou modificações no projeto você necessita comitar antes de enviar então:

$ git commit -a -m "Descrição das Alterações"

Passo Oito: Dando Push no repositório. Opa, agora é a hora de dar errado, depois de tanto trabalho o truque estava no passo 6,7 e 8, essa seqüência é a seqüência que deve ser realizada para não se obter aquele erro indesejável. :).

$ git push working working:refs/heads/working

Passo Nove e Dez: SImplificando o trabalho. Agora que nosso novo branch está no repositório remoto, iremos simplificar nosso trabalho, configurando nosso push para sempre “empurrar” o código de nosso gerador sempre para esse repositório.

$ git config branch.working.remote working$ git config branch.working.merge refs/heads/working

Com isso necessita-se apenas de um comando para enviar nossas alterações:

$ git push

Bem melhor não? para buscar no repositório basta um

$ git pull

Espero que isso ajude, pois pra mim isso foi muuito útil.

até a proxima.

Erro ao dar Push no repositório GIT

Posted On 2 outubro, 2008

Filed under Uncategorized
Tags: , ,

Comments Dropped 3 responses

Aqui vai um resumo de como eu resolvi esse problema 🙂

Eu sou novato tanto em GIT quanto em qualquer outro software de versionamento. nubei de mais XD

IMPORTANTE:

isso não é um tutorial, ou seja não siga os passos dele para obter um bom resultado, mas partes desse evento podem ser uma solução para seu problema. erros de português tem aqui aos montes… waaalleee!!

Bom quando fui dar o simples e corriqueiro git push no getna me veio o seguinte erro:

git push
To git@github.com:user/repo.git
! [rejected] branchname -> branchname (non-fast forward)
error: failed to push some refs to 'git@github.com:user/repo.git'

Após realizar uma pesquisa, logo veio a solução, como eu havia feito alterações no código em meu trabalho com uma versão mais antiga(a que estava no GIT) do que eu tinha em minha casa(esqueci de “pushar” o código) então necessitava dar um comando para pegar o código que estava no git

git pull

simples não?

Como retorno obtivemos

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git pull
remote: Counting objects: 28, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 17 (delta 7), reused 0 (delta 0)
Unpacking objects: 100% (17/17), done.
From git@github.com:LuizCarvalho/getna
   31ef4ca..3df45aa  master     -> origin/master
 * [new branch]      trunk      -> origin/trunk
You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me either.  Please
name which branch you want to merge on the command line and
try again (e.g. 'git pull  ').
See git-pull(1) for details on the refspec.

If you often merge with the same branch, you may want to
configure the following variables in your configuration
file:

    branch.master.remote =
    branch.master.merge =
    remote..url =
    remote..fetch = 

See git-config(1) for details.

Bom… melhorou mais ainda não funcionou…

eu tinha uma certeza que devia fazer um merge… mas num sabia como fazer isso, dei um:

git checkout master

apareceu algumas coisas, ai achei que agora iria funcionar, é hora do merge:

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git merge trunk
trunk - not something we can merge

é acho que não funcionou… :(, no tutorial do Akita pareceu tão facil, nao entendi essa de não poder mesclar….

bom pensei um pouco eu tenho a seguinte situação

tenho:

getna V1(master) – github
getna V2(master) – em casa
getna V3(trunk) – github

hum, acho que eu baguncei de mais… acho que o que eu estou tentando é unir V2 e V3. mas e V1…

hum… esperem… isso pode funcionar vo fazer um teste.

git branch -a
* master
  origin/master
  origin/trunk

Opa. hum eu tentei dar um merge no master(V2)… que é o branch que eu estou no momento… e esse origin/master… acho que ele é o master que esta no github(V1)…vamos ver… o que é um peido pra que já esta cagado não é mesmo? 😀

git merge origin/master

generators/getna/doc/rdoc-style.css: needs update
generators/getna/templates_1/controller.rb: needs update
generators/getna/templates_1/functional_test.rb: needs update
generators/getna/templates_1/helper.rb: needs update
generators/getna/templates_1/layout.html.erb: needs update
generators/getna/templates_1/style.css: needs update
(...)
Auto-merged generators/getna/USAGE
CONFLICT (content): Merge conflict in generators/getna/USAGE
Automatic merge failed; fix conflicts and then commit the result.

OHHHHH!!! que isso? acho q agora sim *.*

Mas esperem, que negocio é esse de merge failed… vix… acho que não foi… hum vo tentar de novo eu gostei desse merge XD

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git merge origin/master
You are in the middle of a conflicted merge.

Ein? que isso ai agora? porque dessa vez não funcionou? :(, vo ver esse arquivo USAGE ai

<<<<<<< HEAD:generators/getna/USAGE
== Getna 

=======
script/generator getna xxx
>>>>>>> origin/master:generators/getna/USAGE

Que isso meu deus do céu??? O.o. De onde veio esse código doido?

Hum… esse é a tal das tags de conlfito…. vo resolver essa budega.. vo tirar a parte que eu n quero mais.

== Getna 

script/generator getna xxx

Aew. eu quero assim  =)

e agora… to com medo de c*gar de novo o código…. to nem ai XD

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git merge origin/master
You are in the middle of a conflicted merge.

Ué. mas eu resolvi essa carniça ai agorinha… O.o

deixa eu ver aqui.

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git status
generators/getna/USAGE: needs merge
# On branch master
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#
#    unmerged:   generators/getna/USAGE
#    modified:   generators/getna/USAGE

AAHHH, tô ligado… acho que vou ter q adicionar de novo pra funcionar.

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git add .

hum… acho que agora eu uso o tal do rebase… pra refazer todas as mudanças nos dois desde o incio. =) vamos ver o que dá.

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git rebase --continue
You must edit all merge conflicts and then
mark them as resolved using git add

O.o, mas que p*rra… vo adicionar só  o arquivo agora.

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git add generators/getna/USAGE

Hum… deixa eu verificar o status de novo.

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    modified:   generators/getna/USAGE
#

Opa, animei de novo. agora parece tudo ok. vamos de novo:

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git rebase --continue
You must edit all merge conflicts and then
mark them as resolved using git add

VSF!!! Q RAIOSSS!!!

vo desistir… ¬¬… sabe de uma coisa vo commitar assim mesmo, sei que não vai funcionar mas nasci pelado, careca e banguela… agora o que vier é lucro.

maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git commit -m "resolvendo conflitos"
Created commit 8284ddb: resolvendo conflitos
maxprox@maxprox-desktop:~/NetBeansProjects/GEtna/vendor/plugins/getna$ git push
Counting objects: 32, done.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (19/19), 4.49 KiB, done.
Total 19 (delta 7), reused 0 (delta 0)
To git@github.com:LuizCarvalho/getna.git
   3df45aa..8284ddb  master -> master

UAHuaHuHuHAuhAUAHUahUAhuHau

Yuhuuuuuuuu!!! YEAAHH!!!!

AMÉMMM!!!

XUPA QUE EH DE UVAAA!!

CREU CREU CREEUU!!

=) que louco! funcionou!

heheh

Viva AO GIT!

__________________-
__________________
_______________

GEtna na || Semana Acadêmica de Ciências da Computação – UFT

Posted On 26 setembro, 2008

Filed under Noticias
Tags: , , , , , ,

Comments Dropped leave a response

Bom Leitor,

Temos ótimas noticias sobre nosso GEtna, hoje(25 de setembro de 08) foi apresentada na II semana Acadêmica do Curso de Ciência da Computação da Universidade Federal do Tocantins uma pequena introdução sobre o Gerador, a galera gostou, ( 🙂 que alivio), infelizmente não foi tão bom quanto eu esperava, cheguei 3 minutos antes de ser anunciado (culpa da passeata da Nilmar [Candidata a prefeita aqui de Palmas]), então fui sem preparação psicológica nenhuma, fiz a cronologia da apresentação deu 37 minutos, eu me esforcei pra deixar com 30, chegando lá só tinha 20 :O, e agora? bom apressei o Maximo que pude acho que atropelei algumas coisas importantes mas no final não saiu tão mal =).

Ah outra coisa que não posso esquecer é que temos mais uma ajuda no projeto GEtna Silvio Fernandes Já fez um fork no projeto andou dando umas fuçadas deus umas dicas legais e é nosso mais novo parceiro nesse trabalho. isso sim é projeto Open Source =). valeu Silvio.
Vou disponibilizar a apresentação aqui no blog, junto com algumas fotos do evento.

update: 18 out 2008: Adicionado minhas fotos =)

Para ver o Slide Clique Aqui

GEtna: FeedBack

Posted On 8 setembro, 2008

Filed under Uncategorized
Tags:

Comments Dropped 5 responses

Esse Post foireservado para tiração de Duvidas, Erros ou Agradecimentos.

se você tem uma, está esperando o que? comenta! vou ter o maior prazer em responde-lo.

Não sabe do que eu estou falando?

então baixe e esperimente:

http://github.com/LuizCarvalho/getna
ou
git://github.com/LuizCarvalho/getna.git

Getna : Uma Abordagem geral sobre o processo de desenvolvimento.

Posted On 7 setembro, 2008

Filed under Artigos
Tags: , , , ,

Comments Dropped leave a response

Para a realização deste trabalho, a primeira medida a ser efetuada é a definição do escopo do gerador, ou seja, quais funcionalidades estarão realmente presentes. Para isso, serão analisadas algumas limitações existentes em várias linguagens, como processos repetitivos e cansativos, no desenvolvimento de uma aplicação, inclusive no próprio Rails.

Iniciaremos o processo de desenvolvimento do gerador pela seleção do tipo, existindo várias possibilidades, como criação de um conjunto de scripts independentes que, ao ser executado por um comando, efetuaria a geração. Uma segunda opção cabível é a criação de uma Gem, um módulo que adiciona novas funcionalidades ao coração do Ruby, sendo expansível a qualquer outro módulo, ou framework nele existente, conseqüentemente, disponíveis às aplicações Rails. Outra possibilidade é criar um plugin (módulo de caráter expansível à uma aplicação Rails) que acoplado ao um projeto do framework pode ser utilizado em conjunto com a aplicação. Dentre as opções apresentadas, escolheremos a opção mais apropriada verificando questões como facilidade de instalação na aplicação, utilização e desenvolvimento.

Como ferramenta de apoio à linguagem de programação usada para desenvolver o gerador de código, utilizaremos o Netbeans devido ao fato de que se possui uma certa experiência com essa IDE e também porque esta possui suporte total à linguagem e ao framework, tornando a programação mais simples e intuitiva.

Uma das tarefas mais importantes será encontrar uma forma de mapeamento do banco de dados, pois dependendo da forma, utilizando um plugin, comandos SQL ou um recurso do próprio Rails, isto vai influenciar diretamente na qualidade final gerador. O uso comandos SQL manuais podem deixar o processo de geração mais lento e mais pesado, se utilizarmos plugin perderíamos a portabilidade e simplicidade do gerador, pois haveria dependência direta de um agente externo, que necessitaria sempre ser instalado junto com o gerador e na pior da hipótese esse plugin pode ser descontinuado fazendo assim com que nossa ferramenta se tornasse legada em uma possível atualização do Rails.

A melhor saída seria utilizar componentes já disponibilizados pelo Ruby ou Pelo Rails, o ActiveRecord, um das Gems que compõem o framework e responsável pela manipulação da base de dados, pode ser a saída para realização dessa tarefa.

Foram feitos estudos em relação à geração de código em outras linguagens e no Rails, foi dado, então, inicio a produção do gerador, uma preocupação nessa etapa foi deixar o código gerado limpo, funcional e re-aproveitável, a resposta estava na utilização de padrões do próprio Rails. Com essa definição deve, então, ser iniciada a criação de templates, arquivos que contem toda a lógica dos códigos a serem gerados.
A estruturação do desenvolvimento do gerador pode ser organizada em cinco partes fundamentais, que serão descritas a seguir. Primeira parte é o gerador, encontrado como arquivo getna_generator.rb pode ser considerado o motor de geração, todas as requisições e tratamentos passar pela sua administração. A segunda é a obtenção e tratamento de dados, a classe Getna (inclusa no arquivo getna.rb, da pasta lib/), contendo todos os módulos Ruby necessários para a manipulação de dados, inclusive o módulo Base, que faz o mapeamento da base e cuida dos relacionamentos.

Na terceira parte encontramos os templates, arquivos modelos de cada arquivo que vai ser gerado, nessa parte que focamos a qualidade de código e a estruturação de cada arquivo. Os arquivos de testes para “cobrir” a aplicação contra erros se encontram na quarta parte de nossa aplicação.
A quinta e ultima parte leva os arquivos adicionais como licença, instalação, desinstalação, descrição e inicialização, arquivos necessários para criação de um projeto Rails, essa estrutura pode ser mais bem entendida na figura abaixo:


Estrutura do Gerador GEtna

Será feito um estudo sobre licenças de código livre para formalizar o gerador como um projeto oficialmente livre e disponível para toda a comunidade. A licença MIT (Massachusetts Institute of Technology), por exemplo, tem grandes chances de ser escolhida.

GEtna – Ep. 3: Mapeando Tabelas do Banco de Dados

Primeiro passo de nosso gerador Rails era buscar todas as tabelas do banco de dados e criar a estrutura inicial… outro problema após algumas horas vendo documentação… bingo! nada XD, Pedindo ajuda para nossa comunidade de sábios desenvolvedores do rails-br, obtive varias sugestões como: De Buscar Pelo Model de Abraão Coelho, Cássio Marques, infelizmente não serviu, pois ainda não tenho model algum, necessito cria-los. Renan Andrade teve uma otima ideia, já que até agora eu defini que o banco seria MySQL poderia fazer um simples:

mysql> show tables; <= mostra as tabelas;
mysql> describe suatabela; <= exibe sua tabela com as descrições do campo.

OK, Mas queria algo mais pratico, tinha certeza que o ActiveRecord poderia fazer isso, e não ia desistir de encontrar.

Estava tentando algo bem bobo como:

ActiveRecord::Base.column_names

Me deparei com o seguinte erro:

NoMethodError: undefined method `abstract_class?’ for Object:Class
from /var/lib/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
base.rb:1915:in `class_of_active_record_descendant’
from /var/lib/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
base.rb:1277:in `base_class’
from /var/lib/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
base.rb:1012:in `reset_table_name’
from /var/lib/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
base.rb:1008:in `table_name’
from /var/lib/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
base.rb:1145:in `columns’
from /var/lib/gems/1.8/gems/activerecord-2.1.0/lib/active_record/
base.rb:1158:in `column_names’
from (irb):16

Ricardo S Yasuda e Davis Zanetti Me abriram os olhos quanto ao metodo que só funciona em uma instancia do ActiveRecord e não em uma Classe Abstrata, isso foi muito importante para a minha conclusão.

Ulisses de Albuquerque Deu uma dica boa sobre Adapters mas isso ainda não era claro pra mim, mas foi muito importante isso ai.

Juan Maiz então me endicou uma saída, utilizar o Sequel Uma solução perfeita para meus problemas, mas fiquei um pouco desanimado pensando que o ActiveRecord… o Poderoso ActiveRecord não tinha tal funcionalidade… e tambem que meu simples generator tenha que usar alguma dependência tão primitivamente para realizar uma pequena tarefa. Bom não desisti e fui feliz em minha busca e insistência.

@con = ActiveRecord::Base.connection
@table_names = @con.execute(‘show tables’)

Está ai, nossas tabelas 🙂 legal né, saí juntando as dicas do pessoal todo e bingo, saiu alguma coisa, bom com isso já posso começar…, mas como sou meio curioso e me animei com esse negocio e não custava nada dar uma adentrada a mais… olha o que descobri…

@con = ActiveRecord::Base.connection
@table_names = @con.tables

😀 Que legal, não era que o ActiveRecord Tinha mesmo o bendito Método… só um pouco de pesquisa e fica simples.

Agradeço a toda a Comunidade.

Abraços

Para ver todos os posts Sobre Getna clique aqui

GEtna – Ep. 2: Primeiros Passos

Posted On 6 agosto, 2008

Filed under Artigos
Tags: , , , ,

Comments Dropped one response

Iniciar meu Projeto… e agora por onde devo começar?

Primeiro a definição do projeto, ué é um gerador… então vamos criar um gerador. uma googlada básica e “Gerador em Rails“, bom nesse tutorial já me sanaram outra duvida, Plugin ou Gem como no tutorial ensina a fazer um plugin, advinha o que eu fiz?

Criamos o Projeto Rails

rails projetogetna

e fizemos exatamente o que está no tutorial, bom funcionou até um certo ponto o ultimo arquivo, deu pau lá nas migrates, mas acho que deve ser por causa da versão do Rails.

Comecei a “programar” depois de algumas horas tentando entender o funcionamento e brincando com Rails::Generator::NamedBase, como um bom iniciante vindo de uma metodologia totalmente diferente, tentei Debugar o codigo com o rubydebug-base fui até o bom e velho Grupo rails-br onde, dentre todas as comunidades que eu passei, encontro a galera mais prestativa dessas comunidades de Programação. onde Davis Zanetti, Diego Carrion,Tino Gomes e Cássio Marques Deram uma Força, e mandaram (Pra varias Escrever teste), bom eu ainda to meio engatinhando nessa parada de testes, mas pow, to no Rails. e estou começando uma longa jornada ate a dominação desse metodo.

Como ainda não sou Hábil com isso achei uma solução, no mínimo, “Gambiarral” fazer saidas do sistema tirei a ideia do post do Diego Carrion:

“Para não precissar debugar acho que o melhor é ter bons logs, ai caso
aconteça um erro, voce pega os dados do log e cria um novo teste :D”

A maneira que eu fiz foi gerar saidas do sistema com os conteúdos das variaveis usando o

$stdout.print

O Codigo fica um pouco feio XD, mas foi a minha saída:


$stdout.print ARGS
runtime_args.each { |i|  $stdout.print#{i}\n }

Bo isso funciona e garante alguns dias a mais sem Testes.

Para ver todos os posts Sobre Getna clique aqui

Próxima Página »