Mostrando postagens com marcador Rails. Mostrar todas as postagens
Mostrando postagens com marcador Rails. Mostrar todas as postagens

sábado, 29 de março de 2014

DocumentosBr, mais uma contribuição para a comunidade Ruby

Essa semana a coisa rendeu!

Como vocês devem ter acompanhado, semana passada soltei a 'gem' CpfUtils e por tabela comecei a desenvolver uma para CNPJ, já que as mudanças eram mínimas.

No início, pensei em juntar tudo em uma única gem, mas, imaginei que algumas pessoas poderiam por algum motivo não querer uma 'gem' com centenas de funcionalidades que não serviriam para nada, então, resolvi separar as funcionalidade em 'gems' que tivessem um único objetivo.

Pois bem, assim surgiram mais duas 'gems', a CnpjUtils e a TituloEleitorUtils, cada uma atendendo ao seu público.

Após terminar as três 'gems', percebi que também seria interessante ter tudo em uma única gem... :) , apenas como um wrapper para as outras três, o que facilita um pouquinho para quem quer ter as três 'gems' instaladas de uma única vez e assim atender a todos os gostos. Sendo assim surgiu a 'gem' DocumentosBr, que une as funcionalidades das 'gems' que tratam de documentos brasileiros.



DocumentosBr, assim como as outras três gems, estão no GitHub para quem quiser contribuir. Seguem os links:

>> CpfUtils: https://github.com/jacksonpires/cpf_utils
>> CnpjUtils: https://github.com/jacksonpires/cnpj_utils
>> TituloEleitorUtils: https://github.com/jacksonpires/titulo_eleitor_utils
>> DocumentosBr: https://github.com/jacksonpires/documentos_br

Como sempre, lembro que todas elas estão com 100% de cobertura de testes unitários usando Rspec.

Agora é com vocês!



quarta-feira, 26 de março de 2014

How to test Prawn + Rspec + Capybara on Ruby on Rails?



Eu estava procurando como testar Prawn + Rspec + Capybara no Ruby on Rails e encontrei alguns exemplos na Internet, mas, na maioria dos casos, os testes envolvendo o  Prawn + Rspec estavam no "formado ruby", sem os famosos arquivos de view *.pdf.prawn. Decidi então testar de um modo diferente pois eu queria testar do mesmo jeito que o usuário usa a aplicação, clicando em um link/botão e vendo um PDF no navegador.

Pois bem, esse teste pode ser feito com o Rspec + Capybara + PDF-Inspector que inspeciona o PDF, validando o conteúdo gerado.

Para fazer o teste siga os passos:

>> Você pode ver o exemplo completo no Github <<

Criando o PDF e visualizando no seu browser.

1) Coloque essas gems na sua Gemfile:
  • gem 'prawn'
  • gem 'prawnto_2', :require => 'prawnto'
  • gem 'rspec-rails', '~> 2.0'
  • gem 'capybara'
  • gem 'pdf-inspector'

2) Crie um link com o famoso helper "link_to" garantindo que o  :format => :pdf  foi usado.
  • link_to "click here to generates the PDF", my_link_path(:format => :pdf)

3) Garanta que o controller/action usados no link renderiza o formato PDF.
  • respond_to {|format| format.pdf}
4) Crie uma view com a extensão *.pdf.prawn e coloque os comandos prawn dentro dela para gerar seu PDF.

5) Neste momento, o link pode ser clicado e vocẽ verá o PDF no seu navegador.


Criando os testes com Rspec + Capybara + PDF-Inspector

1) Garanta que o Capybara esteja integrado com o rspec-rails, para isso, no arquivo spec_helper.rb coloque as duas seguintes linhas:
  • require "capybara/rspec"
  • require " capybara/rails"
3) Em alguns casos é necessário incluir a Capybara DSL no Rspec config do do arquivo spec_helper.rb também:
  • Rspec.configure {|config| config.include Capybara::DSL}
4) Crie seu teste:
  • require "spec_helper"

  • describe "Testing Prawn" do
  •     context "PDF" do
  •         it "Shows a PDF by clicking in the link" do
  •             visit "/my_link.pdf"
  •             ext_analysis = PDF::Inspector::Text.analyse(page.body)
  •             expect(ext_analysis.strings).to be_include("some text that you put in your pdf")
  •         end
  •     end
  • end 
Tudo pronto!



Este é o teste que tenho usado para garantir os passos que o usuário fará e também garantir que o conteúdo gerado pelo prawn é o esperado.

Talvez essas explicação não tenha sido o bastante, então, lembre-se que você pode ver o exemplo completo no Github!



==============
In English...

I was searching how to test Prawn + Rspec + Capybara on Ruby on Rails then I found some examples in a Internet but, in the most of cases, the test made by Prawn + Rspec were in "ruby format", without the famous *.pdf.prawn view files. Then I decided to do a test of a different way, because I have want to test in the same way how the user to do when use the application, clicking in a button/link and see  a PDF in a browser.

This test can be done by using Rspec + Capybara + PDF-Inspector that inspect the pdf, validating the generated content.

To do this test follow the steps

>> You can see the entire example on Github <<

Creating and using the PDF with views on your browser.

1) Put these gems on you Gemfile:
  • gem 'prawn'
  • gem 'prawnto_2', :require => 'prawnto'
  • gem 'rspec-rails', '~> 2.0'
  • gem 'capybara'
  • gem 'pdf-inspector'

2) Creates a link with the famous "link_to" helper on the view that goes a link to your PDF and ensure the :format => :pdf are setted.
  • link_to "click here to generates the PDF", my_link_path(:format => :pdf)

3) Ensure that the controller/action that you put in the link render the PDF format.
  • respond_to {|format| format.pdf}
4) Creates a view with the *.pdf.prawn extension and put the prawn commands inside to generates your PDF.

5) In this time, the link can be clicked and you will see the PDF in your browser.


Creating the tests with Rspec + Capybara + PDF-Inspector

1) Ensure the Capybara is integrated with rspec-rails, for this, in the spec_helper.rb file put the two follow lines:
  • require "capybara/rspec"
  • require " capybara/rails"
3) In some cases is needed to include the Capybara DSL on config Rspec, in spec_helper.rb too:
  • Rspec.configure {|config| config.include Capybara::DSL}
4) Creates your test:

  • require "spec_helper"

  • describe "Testing Prawn" do
  •     context "PDF" do
  •         it "Shows a PDF by clicking in the link" do
  •             visit "/my_link.pdf"
  •             ext_analysis = PDF::Inspector::Text.analyse(page.body)
  •             expect(ext_analysis.strings).to be_include("some text that you put in your pdf")
  •         end
  •     end
  • end 
All done!



This is the test that I been used to guarantee the steps that the user will do and the same time guarantee that the content generated from the prawn is the expected.

Maybe this explanation is not enough to you understand, then, remember that you can see the entire example on Github!



sexta-feira, 21 de março de 2014

CPF Utils, mais uma 'gem' na praça! :)

Acabei de publicar uma 'gem' para efeito de estudos. Ela se chama CPF Utils e tem o objetivo de ajudar os desenvolvedores na hora de gerar CPF's para testes, bem como validar CPF's, dentre outras funcionalidades que podem ser vistas no README do projeto.

Pois bem, como as funcionalidades podem interessar aos meus amigos desenvolvedores Ruby/Rails, segue o link (https://github.com/jacksonpires/cpf_utils) para o repositório do Github, bem como o link (https://rubygems.org/gems/cpf_utils) para a página do repositório Rubygems.



Vale ressaltar que todo o código está documentado e coberto por testes unitários usando Rspec.

Que venham as críticas! :)

terça-feira, 21 de janeiro de 2014

Aulas grátis de Ruby on Rails para iniciantes! #Updated

Olá Pessoal!

Olha eu voltando a postar algo por aqui. :)

Bem, acabei de lançar um novo projeto que deve interessar aos meus colegas desenvolvedores.

Pois bem, dias atrás comecei a publicar, no meu canal do youtube, uma série de aulas sobre Ruby on  Rails, dedicado à pessoas que estão iniciando na área.


A ideia inicial é postar vídeos de no máximo 15 minutos todas as sextas-feiras.

Desde já, agradeço a todos que estão enviando feedback, e peço que continuem enviando, pois são eles que motivam esse tipo de projeto.

Um abraço e boas aulas! ;)


#Update 07/02/2014

Aos interessados, fiz uma playlist no youtube para facilitar o acompanhamento.

sexta-feira, 12 de julho de 2013

Novo projeto no ar! (Site para resolução de questões de concurso público)

Boa tarde, amigos!

É com muito prazer que venho divulgar o mais novo site de resolução de concursos públicos! É ele, o site Mania de Concurseiro (www.maniadeconcurseiro.com.br).



A ideia do site é ajudar a todos que precisam estudar para concursos públicos através da resolução de questões de provas já realizadas. Para isso, todos os internautas podem contribuir enviando questões para o site e em contrapartida recebem uma pontuação, que pode ser trocada facilmente por acesso VIP, por exemplo.

A colaboração dos internautas visa contruirmos a maior base de questões de concurso para que todos desfrutem do bem maior, o estudo e o sucesso na aprovação do concurso desejado.

Além disso o site foi desenvolvido com o objetivo de ser rápido e eficiente na pesquisa e resoluções das questões, afinal, perder tempo é a última coisa que um concurseiro quer.

Em se tratando de serviços extras o site conta com os simulados, que são provas criadas pelo próprio usuário e que podem ser respondidas online ou ter um PDF gerado e baixado para que o aluno estude off-line, ou ainda, para que um professor possa passar para sua turma as questões de determinado concurso.

Enfim, queremos que o Mania de Concurseiro seja uma referência quando se tratar do ecossistema para estudos de concurso público.

É isso... Esperamos que ele ajude bastante aos atuais e futuros concurseiros!

[]'s

sexta-feira, 29 de junho de 2012

RVM - Ruby Version Manager / Para que serve?

Opa! Olha eu novamente. :)

Bom, antes de mais nada, sei que o blog está bem pouco movimentado quanto a novos posts, mas, é que com o advento do twitter e CIA é cada vez menos frequente a necessidade de postar algo por aqui. De qualquer sorte, esse cantinho serve bem quando queremos colocar algo incomun e que precise ser registrado. É isso.

Esse post naverdade eu tirei de um email que acabei escrevendo para um colega que teve uma dúvida sobre o RVM no OSX, então, como ficou legal, e como ele mesmo disse que serviria como um post aqui do blog, acho que vale compartilhar com vocês. O email está quase todo na íntegra, mas, fiz alguns ajustes para pode publicar aqui.

Segue o email...
=======================================

Bem, antes de mais nada, c tá ligado pra que serve o RVM?

Bom, se já sabe, pula esse parágrafo... :) É o seguinte, o RVM é o Ruby Version Manager, ele serve basicamente pra vc instalar quantas versões do ruby vc quiser no seu computador. Ou seja, vc pode instalar o ruby 1.8.7 o ruby 1.9.2 e por aí vai... Sendo assim, ele é uma das melhores formas de vc poder instalar várias versões do ruby e não ter que fazer tanto malabarismo. É isso.

Bom, eu dei uma olhada no tutorial que vc me passou, e ele está um pouco comprido... tem umas coisas que não precisaria, sendo assim vou tentar saber em que pé vc está...

Vê só, antes de mais nada, pela linha que vc disse que deu pau, o RVM já deve estar instalado. Sendo assim, digite no prompt, "rvm --version" e veja se ele retorna a versão da rvm que está instalada. Caso não tenha instalado, verifique esse tuto (http://gustavosoares.com/blog/2012/01/17/instalando-o-rvm-no-osx/).

Caso ele já esteja instalada, digite "rvm list known". Esse comando vai mostrar todas as versões ruby que estão disponíveis para serem baixadas e instaladas.

Depois digite o comando "rvm list". Esse comando vai mostrar quais versões estão instaladas no seu computador. Nesse caso, acho deve ter pelo menos a versão 1.9.3 que pelo tutorial vc instalou.

Pronto, basicamente é isso. Tendo  qualquer versão do ruby instalada, basta vc usar o comando "rvm use 1.9.2", onde 1.9.2 é a versão que vc tem instalada no seu rvm. 

PS. Para não ter que digitar o comando anterior todas as vezes que abrir o prompt, digite "rvm use 1.9.2 --default". Esse comando serve para deixar uma versão do ruby como default no sistema.

Resumindo...
Use "rvm list known" para verificar quais versões do ruby vc pode instalar no seu computador
Use "rvm list" para listar as versões instaladas no seu computador.
Use "rvm install " para instalar uma versão do ruby que vc quer
Use "rvm use " para usar uma versão do ruby que esteja instalada no seu rvm.
Use "rvm use 1.9.2 --default" para deixar uma determinada versão do ruby como default no sistema.

Pronto, depois disso, vc pode rodar o velho comando "gem install rails" que ele instala o rails tranquilo! :)

Qualquer coisa, tem essa explicação com mais detalhes, no site da RVM >> https://rvm.io/rvm/install/ na seção "Try out your new RVM installation".

Só mais uma dica. Como o RVM instala quantas versões do ruby vc quer, lembre-se que para cada versão do ruby ele vai funcionar como se fosse um ambiente diferente. Ou seja, vamos dizer que instalei a versão 1.8.7 do ruby pq tô precisando usar o rails 2.3. Pronto, é só instalar o versão 1.8.7 do ruby via rvm, setar para uso, e depois instalar a versão do rails que eu quero. Se no segundo momento, eu instalo e passo a usar a versão 1.9 do ruby por exemplo, isso que dizer que essa versão do ruby não tem nenhum rails instalado, e eu teria que instalar um novo rails para essa versão. O legal disso é que se eu volto pra usar a versão 1.8.7 do ruby, vc vai notar que não foi alterado nada, estando com a versão do rails q vc deixou. Em suma, eu posso ter qtas versões do ruby e do rails quiser no meu computador! :D

É isso... Não sei se deu pra entender, mas, qq coisa é só falar.

Vlw, brow!

[]'s

============================

É isso, qualquer dúvida postem aqui.
Um abraço pessoal!

terça-feira, 6 de setembro de 2011

quarta-feira, 3 de agosto de 2011

Rails 3 - spec_fetcher.rb:133:in `load': marshal data too short (ArgumentError)


Se ao tentar rodar o bundle install você receber esse erro:

spec_fetcher.rb:133:in `load': marshal data too short (ArgumentError)

Tente alterar o arquivo Gemfile do projeto, comentando a primeira linha e adicionando o seguinte:

#source 'http://rubygems.org'
source 'http://gems.rubyforge.org'

[]'s

sexta-feira, 27 de agosto de 2010

Minha contribuição anual para a comunidade Rails! :D


Em junho desse ano, tive a oportunidade de falar sobre o Rails para a UNICENTRO em Guarapuava - PR.

Como a apresentação foi gravada, aproveito para disponibilizar para a comunidade.

>> http://webconf.rnp.br/p85068155/

Espero que apreciem.


[]'s

segunda-feira, 21 de dezembro de 2009

TAR - Rails - Capistrano - SCHILY.dev - Snow Leopard

Pra variar, mais uma atualização que o Snow Leopard faz, e que ficamos perdidos.

Como sempre, graças ao Santo Google encontrei a solução.

Percebi o problema abaixo quando fui utilizar o Capistrano após a atualização do Snow Leopard, o mesmo mostrava as seguintes linhas de erro após uplodear o arquivo e tentar descompactá-lo no servidor:

*** [err :: xxxxx.com.br] tar: Ignoring unknown extended header keyword `SCHILY.dev'
*** [err :: xxxxx.com.br] tar: Ignoring unknown extended header keyword `SCHILY.ino'

*** [err :: xxxxx.com.br] tar: Ignoring unknown extended header keyword `SCHILY.nlink'


Bem, o erro, conforme esse site, está que a Apple resolveu "trocar de lugar" o gnutar e o bsdtar. Segue abaixo, na íntegra, o que o camarada falou.


=================

The problem is that Apple used to include the GNU version of tar at /usr/bin/tar. With Snow Leopard Apple changed /usr/bin/tar to point to bsdtar, breaking any scripts or applications that depended on gnutar

To change it type the following in terminal:

cd /usr/bin; sudo ln -fs gnutar tar && /usr/bin/tar --version

To verify, it should say GNU somewhere in the output.
To change it back to default:

cd /usr/bin; sudo ln -fs bsdtar tar && /usr/bin/tar --version

=================

É só fazer a alteração e partir para o abraço! :D

[]'s

sexta-feira, 11 de dezembro de 2009

require 'mysql_api' error no Rails - Snow Leopard

Esse mês, após atualizar o Mac para o Snow Leopard 10.6, e também após seguir o tutorial para a atualização do Ruby/Rails para funcionar no mesmo tive a surpresa de não conseguir executar os comandos RAKE relativos ao BD MySQL.



Após algum tempo testando e pesquisando sobre o assunto vi que o mesmo se resumia ao não "carregamento" da biblioteca "mysql_api", em alguns locais também vi que o pessoal se referia a esse ao tópico "gem install mysql returns list of No definition for XYZ", e assim descobri que a causa real do problema vinha da atualização mal sucedida do Snow Leopard que por acaso deixa uma versao 32Bits do Ruby instalada.

Para ter certeza se esse é o seu caso basta testar o arquivo

>> file /usr/local/bin/ruby

Se o retorno mostrar que a versão é 32Bits, voilá, esse será o problema.

Para corrigir é só reinstalar o Ruby.

É isso! Um problema a menos! ;)

segunda-feira, 16 de novembro de 2009

CONINFA 2009!

Quero aproveitar e deixar meus "5 cents" em relação ao CONINFA neste ano de 2009.

Eu que participei de todos os dias do evento sou suspeito em falar, mas o evento merece meus parabéns pela organização e participação de todos.


Tanto palestrantes como o corpo docente e discente marcaram suas presenças e contribuíram para que o evento fosse um sucesso.

Eu particularmente tive o privilégio de ministrar um mini-curso de Ruby on Rails e acredito ter conseguido passar uma visão bem geral so framework. Espero também que os que ficaram interessados no assunto possam entrar em contato para tirar suas dúvidas.

Aproveitem também e conheçam o grupo Ruby.PA, que é o grupo onde aproveitamos para falar de ruby e rails aqui na cidade de Paulo Afonso.




Vou torcer para que nos próximos anos o CONINFA possa arrebatar a região e trazer todos para prestigiar o que há de melhor nas áreas dos seus cursos.


Até ano que vem, se Deus quiser!

[]'s

segunda-feira, 14 de setembro de 2009

Rails For Kids 2009!

Esse último sábado (12/09/2009) aconteceu o Rails For Kids, que para quem não conhece é um evento 100% online que visa juntar a galera que gosta de Rails e de quebra ajudar a Cotolengo, uma instituição que acolhe portadores de necessidades especiais. Podemos dizer que é o criança espererança da comunidade railer! ;)


Brincadeiras a parte, o evento foi ótimo, e para eu que também participei da primeira edição em 2007, pude notar a grande evolução do software treinatom e consequentemente da e-Genial (idealizadora do evento), sempre com seus produtos e eventos de muita qualidade.

Não consegui assistir todas as palestras, mas boa parte delas, as que acompanhei, foram de muito proveito.

Esse post tem um breve resumo de como foi o evento.

Resta agora esperar o próximo Rails For Kids!

Parabéns a toda equipe e-Genial!

[]'s

terça-feira, 8 de setembro de 2009

Rails nas Prefeituras!

Recentemente tive a oportunidade de acompanhar o uso do RoR na prefeitura aqui da região. Agora que o projeto já está a pleno vapor pude conversar com o responsável pela façanha para que ele me contasse sobre o que achou da experiência.


Confiram no trecho abaixo:

===============================

Você já conhecia o rails antes de fazer essa aplicação?

Sim, tive algum contato com a ferramenta, porém muito superficial.

O que chamou mais atenção quando você começou a desenvolver com o rails?

A questão da configuração e conveção é muito interessante, principalmente a convenção onde o código fica mais elegante e legível para outras pessoas, não existe tipo no asp ou no php, onde a estrutura de diretorios é definida de acordo com a vontade do desenvolvedor. No rails existe uma convenção onde os javascript, stylesheets, images, e seus códigos estarão onde realmente precisam estar, desta forma existe uma padronização do código, sem falar na facilidade de desenvolver, uma linguagem simples e enxuta, um framework que realmente utiliza o padrão arquitetural MVC.



Quanto tempo você levou para fazer a aplicação básica do seu projeto (sem o layout ou partes gráficas)?

Bom, para fazer a aplicação básica sem perfumarias, só o cru mesmo, levei acho que uma semana, porque os outros recursos que utilizei foram extras, ou seja, irrelevantes porém importantes para o funcionamento da aplicação.

Após fazer esse teste inicial com o rails em uma aplicação real, você recomendaria o rails como plataforma de desenvolvimento para outras empresas ou mesmo outras prefeituras?

Sim, com certeza. No meu caso o principal motivo de ter feito essa aplicação em Rails, foi justamente o tempo curto que tinha para desenvolvê-la, acreditei que com o Rails ganharia este tempo e mesmo ainda em fase de aprendizado estava certo.

Que comentários você deixa pra quem ainda não conhece o rails?

O que posso falar é que aprendam, o negócio funciona e funciona muito bem, agora o que eu costumo dizer o Rails não vai ser a salvação da sua vida, mas concerteza vai te dar uma ajuda muito grande, o resto depende de você. Ah, e outra, esqueçam essa história de comparar o Rails com outras linguagens, aprendam e ai vocês verão a diferença.

===============================

Então é isso, tá aí o primeiro case utilizando rails nos órgão públicos da nossa região!

Ahhh, o endereço do site é esse: http://e-gov.pauloafonso.ba.gov.br:8887/

Qualquer dúvida ou esclarecimento é só falar.

[]'s

quarta-feira, 12 de agosto de 2009

Oxente Rails!

Depois de um bom tempo sem postar, estou eu aqui outra vez. :)

Desde o último dia 30/07 que estou em um corre-corre imenso, mas resolvi dar uma paradinha para comentar sobre o evento Oxente Rails que aconteceu esse final de semana.

Apesar de já terem muitos posts sobre o assunto, acredito que vale a pena comentar mais um pouco sobre o mesmo, e dar crédito ao evento como um todo.

Bem, para ir ao evento, eu e meu colega Marcus fizemos um trajeto um tanto diferente dos demais participantes, pois, além de sermos de outro estado decidimos ir de moto.

O trajeto escolhido rendeu 730Km conforme pode-se observar abaixo.



Exibir mapa ampliado

A viagem, apesar de tranquila, foi regrada a muita chuva, o que acabou atrasando um pouco a viagem, mas, nada que atrapalhasse a empolgação.


O Evento em si foi ótimo. Todos estavam muito receptivos, e isso facilitou bastante fazer novas amizades e é claro conhecer todos aqueles que conversamos pela net.


Em resumo, recomendo a todos que se puderem ir aos eventos de Rails que o façam. É impossível descrever, só quem esteve lá vai saber o que realmente é participar de eventos assim.

Agora é se preparar para ir ano que vem, inclusive quem sabe a Summit não entra na lista dos Railers do Asfalto. :)

[]'s

quarta-feira, 15 de julho de 2009

Instalando Gems através do Git

Esse post é uma tradução/adaptação do original "Installing Gems from Git" disponível no Ruby.About.com.

Muitas gems são hospedadas em repositórios git, tais como o repositório público Github. Entretanto, para pegar a última versão, frequentemente não há gems construídas para você instalar com facilidade. Embora, instalar através do git seja fácil.

Primeiro você deve entender o que o git é. Git é o quê os desenvolvedores de código usam para acompanhar o código-fonte e colaborar ao mesmo tempo. Git não é um mecanismo de lançamento de versões. Por isso é importante notar que a versão do software que você pega do git, pode ou não ser estável. Essa não é uma versão lançada, e pode conter bugs que podem ser corrigidos antes da próxima versão oficial.

A primeira coisa que você deve fazer a fim de instalar gems através do git é instalar o git. Essa página do livro do Git explica como fazer isso. É bastante simples em todas as plataformas, e uma vez que é instalado, você têm tudo que você precisa.

Instalar uma gem através de um repositório Git pode ser feito em 4 passos.

  1. Clone o repositório Git.
  2. Mude para o novo diretório.
  3. Construa/Compile a gem.
  4. Instale a gem.


Clone o repositório Git

Na linguagem Git, "clonar" um repositório git é fazer uma cópia dele. Nós faremos uma cópia de um repositório do RSpec no github. Esta cópia será uma cópia completa, o mesmo que os desenvolvedores terão em seus computadores. Você pode até mesmo fazer alterações (embora você não será capaz de "commitar", enviar essas alterações de volta para o repositório).

A única coisa que você precisa para clonar um repositório git é a URL git. Isso está disponível na página do RSpec no github. A URL para clonar o RSpec é: git://github.com/dchelimsky/rspec.git. Agora simplesmente use o comando "git clone" com o URL fornecida.


$ git clone git://github.com/dchelimsky/rspec.git



Isso irá clonar o repositório do RSpec dentro de um repositório chamado rspec. Esse diretório deve sempre ser o mesmo que a parte final da URL clone (menos a parte .git).

Mudando para um novo diretório

Esse passo, também, é muito simples. Simplesmente mude mude para o novo diretório criado pelo Git.


$ cd rspec


Compilando/Construindo a Gem

Esse passo é um pouquinho mais complicado. Gems são compiladas/construídas usando o Rake, usando uma tarefa chamada "gem".


$ rake gem


Embora possa não parecer simples. Quando você instala uma gem usando o comando gem, silenciosamente, "por trás das cenas", alguma coisa está sendo feita de importante: Checagem de dependências. Quando você rodaro comando, ele pode retornar uma mensagem de erro dizendo que precisa instalar outras gems, ou que você precisa atualizar uma gem já instalada. Instale ou atualize essa gem usando o mesmo comando gem, ou instalando-a pelo git. Você pode ter de fazer isto várias vezes dependendo de quantas dependências a gem tenha.

Instale a Gem


Quando o processo de construção/compilação é completada, você terá uma nova gem no diretório pkg. Simplesmente dê o path relativo para esse arquivo .gem com o comando gem install. Você precisará de privilégios de ardministrador para fazer isso no Linux ou OSX.


$ gem install pkg/gemname-1.23.gem


A gem agora está instalada e pode ser usada como qualquer outra gem.


[]'s

sexta-feira, 10 de julho de 2009

Trabalhando com Gems no Ruby/Rails

Esse post é uma tradução/adaptação do original "Adding and Installing Gems from the Ruby Gems Repository" disponível no Ruby.About.com

Você pode adicionar e instalar Ruby Gems através de procura no repositório do Ruby Gems. Simplesmente rode o comando "gem search". Por padrão, Ruby Gems faz a procura apenas no seu repositório local -- as gems que você tem instalada. Enquanto isso pode ser muito útil para procurar gems já instaladas, isso geralmente não é a intenção de quando se roda o comando search. Para procurar em repositórios remotos, adicione --remote ou -r ao comando.

O forma básica de uma procura com o Ruby Gems é uma simples pesquisa de um termo sem outro argumento que não seja o --remote. O termo pesquisado será comparado com todas as Gems no repositório e seus resultados incluirão respostas aproximadas. Por exemplo, procurando por cloth isso inclui as gems "RedCloth" e "BlueCloth".

Abaixo temos um exemplo de procura por cloth. Uma quantidade de gems são listadas, bem como as sua versão atual. Essa saída pode ser alterada conforme as indicações abaixo.



$ gem search --remote cloth

*** REMOTE GEMS ***

BlueCloth (1.0.0)
ClothRed (0.4.1)
mediacloth (0.0.3)
RedCloth (3.0.4)


O número de argumentos pode ser fornecido para definir qual os resultados devem ser impressos no terminal. A lista completa desses argumentos podem ser acessada rodando o comando "gem help search". Outros tópicos de ajuda podem ser visualizados quando é rodado o comando "gem help".

  • -d, --details - Mostra as descrições das RubyGem bem como os nomes das gems e suas versões. Isso particularmente é útil quando você está procurando por gems relacionadas a um dado tópico. Por exemplo, quando estamos procurando por gems que trabalham com arquivos PDF, se você não tem uma gem específica em mente, procure por gems com PDF em seu nome e lendo as descrições você pode ter uma ideia do que está disponível.

  • --local, --remote, --both - Define onde o RubyGems deverá procurar as gems.

  • -a, --all - Mostra todas as versões da gem no repositório. Quando um desenvolvedor atualiza a versão de uma gem, a gem antiga não é deletada, desde que isso possa ser necessário (às vezes) para instalar uma versão anterior da gem. Usando esse parâmetro o RubyGems mostrará todas as versões da gem que estão no repositório.


Instalando Gems

Para instalar gems, você deve ter acesso de escrita. No Linux ou OS X, isso significa torna-se root/administrador no terminal ou usar o comando "sudo" para ordar a RubyGems como root/administrador. Os exemplos abaixo mostrarão como fazer isso com o "sudo", você precisará se reportar à documentação do seu sistema operacional para instruções de como rodar coisas como root/administrador. No Windows, você não precisará rodar o comando gem como um usuário administrador se, no seu HD, você tiver acesso de escrita na pasta da gem.

Instale gems com o comando "gem install". Com o comando "search", adicionar o parâmetro"--remote" é necessário. Você pode também fornecer o nome completo, não apenas o termo pesquisado como você fez com o comando de busca. Lembre-se que os nomes são também "case sensitive": "redcloth" não é o mesmo que "RedCloth".




$ sudo gem install RedCloth
[sudo] password for username:
Updating metadata for 52 gems from http://gems.rubyforge.org/
....................................................
complete
Successfully installed RedCloth-3.0.4
1 gem installed


Você pode também instalar uma versão específica de uma gem. Por exemplo, pode ser que você queira instalar uma versão anterior do RedCloth porque uma nova versão tem um bug ou quebra um recurso que você precisa usar. Nesse caso, você pode usar o parâmetro "--version", primeiro use o comando com o parâmetro "--all" para verificar quais versões estão disponíveis.





$ gem search --remote --all redcloth

*** REMOTE GEMS ***

Bulk updating Gem source index for: http://gems.rubyforge.org/
Bulk updating Gem source index for: http://gems.rubyforge.org/
RedCloth (3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 2.0.11, 2.0.10,
2.0.9, 2.0.8, 2.0.7, 2.0.6, 2.0.5, 2.0.4, 2.0.3, 2.0.2)



Neste exemplo, uma das últimas versões instaladas da série 2.x, 2.0.11. O parâmetro "--version" pega a "string versão" como um argumento. Uma string de versão tem um operador seguido por um número de versão. O operador pode ser apenas = (o sinal de igual) que significa que você deseja instalar a versão exata gema, mas também pode ser algo do tipo >= (maior ou igual a) para significar que você deseja instalar essa versão ou de qualquer versão mais recente.



$ sudo gem install --version '= 2.0.11' RedCloth
Bulk updating Gem source index for: http://gems.rubyforge.org/
Successfully installed RedCloth-2.0.11
1 gem installed

segunda-feira, 22 de junho de 2009

OxenteRails!

Dias atrás fui surpreendido com a notícia que haveria um evento sobre o Rails aqui no nordeste.

Wow, então aproveito aqui para divulgar o evento, que a princípio devo participar e devo ir de moto :D, cumprindo ao menos uma viagem anual como fiz ano passado, que por acaso também foi para um evento Rails. Tô comecando a achar que esses eventos nordestinos vão ser todos regrados a viagens de moto todos os anos. :)

O OxenteRails, será um evento que a princícpio rodará todo nordeste, começando esse ano por Natal-RN e a cada ano passando por cada uma das capitais.

De cara, o evento parece ser bem estruturado e ainda contará com palestrantes internacionais e tradução simultânea dos mesmos.

Fica então o convite a todos para participarem desse evento que promete ser muito bom.


Oxente Rails - Eu vou


Ahhh... fiquem de olho no Twitter do OxenteRails e, se tiverem algum trabalho à apresentar já podem postar aqui.

[]'s

sexta-feira, 3 de abril de 2009

Visão do mundo Rails...

Hoje me deparei com uma "tuitada" que se referia a essa página:

http://labuschin.com/rails

Achei interessante resgistrar aqui, já que se trata de uma página com um bom apanhado do que temos para rails atualmente.


[]'s