/* CODIFICANDO */

Relatos de um programador em contínua aprendizagem.

Archive for the ‘opensource’ Category

Booleanize 0.2 com configuração global

sem comentários

Dei uma atualizada no booleanize e agora ele aceita configuração global. O que isso quer dizer? Significa que se você usa quase sempre as mesmas strings para true ou false, não vai mais precisar ficar duplicando o código em todos os models. Basta adicionar algo como isso no seu environment.rb:

Booleanize::Config.default_strings :true => "Yes", :false => "No"

Assim, toda vez que você usar booleanize :some_boolean_attr nos seus models, não será precisa especificar quais strings deverão ser usadas. Mas se em um caso específico você precisar usar outras strings, basta declarar da forma usual, pois configurações locais têm maior precedência que as globais.

É possível inclusive utilizar o booleanize com internacionalização. Coloque algo como isso no seu arquivo locale/blabla.yml

booleanize:
  true_string: Sim
  false_string: Não

E no seu environment.rb:

Booleanize::Config.default_strings :true => I18n.t("booleanize.true_string"), :false => I18n.t("booleanize.false_string")

E agora é possível instalar o booleanize como um plugin ou como uma gem (créditos para o José Valim). Basta fazer: sudo gem install cassiomarques-booleanize

Escrito por cassiomarques

Maio 25, 2009 em 2:28 am

Publicado em opensource, rails, ruby

Atualização Brazilian-Rails: Pesquisa de ceps que começam com ‘0′

sem comentários

O João Vitor fez algumas correções na gem brcep do Brazilian-Rails e agora é possível consultar CEPs que comecem por ‘0′ (zero). Antes das alterações, caso você passasse algum cep que começasse com ‘0′ para o método BuscaEndereco.por_cep, uma exceção era lançada, informando que o CEP possuia formato inválido.

Uma alteração que foi feita e que talvez você precise ficar atent@ é que agora o último elemento do array retornado pelo método BuscaEndereco.por_cep é uma string e não mais um inteiro (caso contrário CEPs começando por ‘0′ perderiam este digito).

Obrigado João Vitor!

Escrito por cassiomarques

Março 5, 2009 em 3:16 am

Publicado em opensource, rails

Nova versão da gem brcpfcnpj

com 14 comentários

Update: Se alguém ainda estiver tendo problemas com o brcpfcnpj, atualizem o Brazilian-Rails para versão 2.1.1 ou superior que os problemas citados nos comentários abaixo foram solucionados.

Há um tempo atrás descobrimos que a gem brcpfcnpj, parte integrante do projeto brazilian-rails, tinha um pequeno problema para trabalhar em conjunto com as validações do Rails. Por padrão, qualquer atributo usado com usar_como_cpf ou usar_como_cnpj passava a ser automaticamente validado quanto ao seu formato (além da validação do conteúdo do número de documento em questão). Entretanto, não há validação automática para garantir esses atributos não são vazios ou que devem ser sempre únicos.

A solução mais óbvia seria simplesmente escrever código como estes:

class Cliente < ActiveRecord::Base
  usar_como_cpf :cpf
  validates_presence_of :cpf
  validates_uniqueness_of :cpf
end
class Empresa < ActiveRecord::Base
  usar_como_cnpj :cnpj
  validates_presence_of :cnpj
  validates_uniqueness_of :cnpj
end

O problema disso é que até o Rails 2.1, se você usasse os códigos acima, a coisa não funcionaria direito. Isso porque por baixo dos panos o brcpfcnpj utiliza estruturas do tipo composed_of e esse tipo de construção não trabalhava bem com as macros de validação do Rails. Mais precisamente, se você tentasse usar um validates_uniqueness_of junto com um usar_como_cpf, todo o objeto da classe Cpf seria convertido para uma string (usando to_s, ou seja, não o que queremos) e o resultado disso seria colocado na cláusula where da query SQL feita no banco. Resumindo: Não retornava nada e mesmo que o seu cpf ou cnpj já estivessem gravados no banco, seu objeto continuaria válido.

A partir do Rails 2.2 isso mudou, pois foi alterada a forma com que o composed_of trabalha (e eu me aproveitei deste fato). A partir de agora, caso esteja utilizando o Rails 2.2 ou superior no seu projeto e estiver usando a gem brcpfcnpj, você pode escrever código como o descritos nos exemplos acima e tudo vai funcionar perfeitamente. Caso você ainda esteja no Rails 2.1 ou inferior, continua como antes: A gem irá validar perfeitamente o conteúdo do seu cpf ou cnpj, mas será necessário simular o comportamento das macros escrevendo validações na mão, caso você precise desse tipo de validação. Mais um incentivo para você atualizar o Rails nas suas aplicações.

Para baixar o brazilian-rails com a nova versão do brcpfcnpj, basta fazer

gem install brazilian-rails
cnpj, c

Escrito por cassiomarques

Janeiro 21, 2009 em 3:47 am

Publicado em activerecord, opensource, rails

Etiquetado com ,