Feb
11
Posted on 11-02-2011
Filed Under (Rails, ruby) by Leandro Nunes on 11-02-2011

Daqui a pouco vai rolar a minha apresentação de rails do Serpro Salvador.

Nesta apresentação também estarão meus amigos @caiosba e @aterceiro.

O evento também marcará o lançamento do novo site do grupo de usuários ruby da Bahia http://softwarelivre.org/guru-ba

Muita emoção num dia só :)

Acompanhe o evento online no endereço:

http://assiste.serpro.gov.br/ruby-on-rails

Mais informações em:

http://softwarelivre.org/guru-ba

Jul
01
Posted on 01-07-2010
Filed Under (ruby) by Leandro Nunes on 01-07-2010

Eu sempre procuro deixar o meu sistema o mais atualizado possível. Volta e meia eu me deparo com problemas de compatibilidade de alguns softwares e a bola da vez foi o Selenium com o Webrat.

Eu estava utilizando o cucumber com o selenium no desenvolvimento de uma aplicação e não estava funcionando.

Depois de muito fuçar vi que o problema era a incompatibilidade do webrat versão 0.5.1 com a versão do firefox que eu estou usando 3.6.6.

Para resolver o problema sem perder toda a sua manhã como eu :) siga as instruções abaixo:

   1. Crie um diretório onde você possa manipular o conteúdo do jar
     mkdir -p ~/tmp/selenium
     cd ~/tmp/selenium

   2. Copie o arquivo jar do Webrat para a pasta criada
     cp ~/.gem/ruby/1.8/gems/webrat-0.5.1/vendor/selenium-server.jar .

OBS: Eu instalei a gem webrat localmente no meu home, você deve realizar uma
adaptação para a sua realidade neste ponto.

   3. Descompacte os arquivos contidos no jar e delete o arquivo jar
     unzip selenium-server.jar
     rm selenium-server.jar

   4. Procure os arquivos *.rdf (deve existir 5 destes arquivos):
     find . -name "*.rdf"
     ./customProfileDirCUSTFF/extensions/{538F0036-F358-4f84-A764-89FB437166B4}/install.rdf
     ./customProfileDirCUSTFF/extensions/readystate@openqa.org/install.rdf
     ./customProfileDirCUSTFFCHROME/extensions/{503A0CD4-EDC8-489b-853B-19E0BAA8F0A4}/install.rdf
     ./customProfileDirCUSTFFCHROME/extensions/{538F0036-F358-4f84-A764-89FB437166B4}/install.rdf
     ./customProfileDirCUSTFFCHROME/extensions/readystate@openqa.org/install.rdf

   5. Em cada um destes arquivos você verá:
     <em:maxVersion>3.5.*</em:maxVersion>
   Mude para
     <em:maxVersion>3.6.*</em:maxVersion>

   6. todos os arquivos agora estão prontos. Gere novamente o arquivo jar
e mova para o local correto do webrat:
     zip -r selenium-server *
     mv selenium-server.zip selenium-server.jar
     mv selenium-server.jar ~/.gem/ruby/1.8/gems/webrat-0.5.1/vendor/selenium-server.jar

OBS: Eu instalei a gem webrat localmente no meu home, você deve realizar uma
adaptação para a sua realidade neste ponto.

	* Referência: http://www.qaautomation.net/?p=15
May
17
Posted on 17-05-2009
Filed Under (Rails, ruby) by Leandro Nunes on 17-05-2009

Eu perdi algum tempo procurando uma forma de acessar objetos via ActiveResource de uma aplicação servidora para uma cliente.

O meu problema era que o nome do meu resource na aplicação cliente não era a correspondência exata do nome esperado no meu servidor.

Trocando em miúdos…

Eu tenho uma aplicação servidora com o seguinte controller:


class CategoriesController < ApplicationController

  def index
    @categories = Category.all
    respond_to do |format|
      format.json { render :json => @categories }
    end
  end

end

e outra aplicação cliente com o seguinte resource:


class RemoteCategory < ActiveResource::Base

  self.site = http://localhost
  self.format = :json

end

A minha aplicação servidora roda na porta 3000, e a cliente na porta 3001.

O problema é que utilizando somente este código no meu resource, ele vai procurar pelo recurso no meu servidor utilizando o caminho:

http://localhost/remote_categories.json

O problema é que o meu servidor, obviamente ;) , não tem esta rota. Uma vez que o controller que ele possui tem nome categories, gerando portanto a rota:

http://localhost/categories.json

Entretanto eu não podia modificar o nome do meu resource para Category, pois eu já possuía um outro model com este nome na aplicação.

Então depois de perder alguns minutos encontrei a solução.

Basta definir o nome do elemento no resource. Neste caso em particular definir o element_name no objeto RemoteCategory:


self.element_name = 'category'

A configuração final do resource RemoteCategory fica então:


class RemoteCategory < ActiveResource::Base

  self.element_name = category
  self.site = http://localhost
  self.format = :json

end

Espero que seja útil para outras pessoas ;)

Apr
04
Posted on 04-04-2009
Filed Under (Rails) by Leandro Nunes on 04-04-2009

Tinha uma coisa que sempre me incomodou no console do rails e também no irb que era a possibilidade de se guardar o histórico dos comandos digitados nestes ambientes.

Pois é, agora isso não me incomoda mais. Basta criar um arquivo de nome ‘.irbrc ‘ no home com o seguinte conteúdo:


# load libraries
require rubygems
require wirble

# start wirble (with color)
Wirble.init
Wirble.colorize

Para que o histórico de comandos funcione você precisa da biblioteca ‘libwirble-ruby’ instalada.

aptitude install libwirble-ruby

Pronto. Tudo funciona bonitinho agora ;)

eXTReMe Tracker