Fork me on GitHub Fork me on GitHub

Blog do Kiva

As aventuras de um tal Kivanio na TI

Rails for Kids 2009

 Aproveitei algumas poucas horas do feriadão para incluir boletos para o Banco Real.

Para quem estava me solicitando está ai.

Não deixe de atualizar a gem:

gem install brcobranca

ou

sudo gem install brcobanca

Não deixe de conferir o código fonte:  http://github.com/kivanio/brcobranca/tree/master

Nem deixe de testar esse novo boleto em http://www.boletorails.com.br/

Está sentindo falta de algum banco? solicite: http://github.com/kivanio/brcobranca/issues

 

Mias tarde mais novidades...

 

Continuar lendo...
0 comentários. Comente este artigo.

 Depois de quase 9 meses do seu lançamento, acts_as_payment torna-se gem e ganha nome brcobranca.

A primeira versão do plugin para boletos, veio por completa falta de outros plugins nesta área, o intuito era movimentar a galera para que conversas a respeito acontecessem. 

Vejo esta missão como completa, pois após este período, pessoas se interessaram, outros plugins surgiram(kill_bill), fazendo com que a discussão começa-se.

Hoje, quase 9 meses depois do seu lançamento e com sua missão cumprida, este plugin para o rails, torna-se obsoleto com a chegada de sua versão gem,

idependente de frameworks, podendo ser usado com qualquer coisa que fale Ruby.

O acts_as_payment vai ser descontinuado?

Provavelmente sim, pois só serão corrigidos possíveis bugs se alguém que estiver usando a versão antiga solicitar, mas recomendo que quem esteja usando, se atualize.

Por que a mudança do nome?

Simples, quando do lançamento, a idéia era que fosse usado em conjunto com o ActiveRecord do Rails, com alguns métodos para auxiliar a criação do boleto,

porém essa idéia se mostrou pequena perto das possibilidades e de solicitações de algumas pessoas; mesmo em suas versões posteriores o nome já não fazia mais sentido.

Quais as novidades?

A gem ficou independente de frameworks.

Não precisa rodar rake, copiar, imagem, nada, somente usar.

Foram adicionadas novas carteiras ao banco Itaú.

Foi adcionado boleto para o HSBC.

Novos outputs(PDF, JPG, PNG e TIF).

Se você precisar de processamento em lote ou usar RESTFUL, agora é possível.

Foi refatorado completamente.

E em breve mais novidades.

Posso ver sem instalar?

Claro, acesse a página de demonstração.

Legal, posso ver o código?

Certamente, o código da página de demonstração está aqui:  http://github.com/kivanio/brcobranca_exemplo/tree/master

Como posso ajudar?

Sempre estamos precisando de ajuda, novos boletos, layout do exemplo, documentação, testes.

Em breve estarei publicando um tutorial que já está pronto sobre como adicionar mais bancos.

Onde acho o codigo da gem?

Também está no github: http://github.com/kivanio/brcobranca/tree/master

Instalação? Documentação?

Aqui tem também: http://brcobranca.rubyforge.org/

Puts, achei um bug e agora?

Informe aqui: http://github.com/kivanio/brcobranca/issues

 

Obrigado às pessoas que contribuiram com a versão anterior, às que fomentaram as discussões e ao grande mestre Shairon Toledo pelo explêndido rghost e contribuições de código.

 

Por enquanto é isso, aguardem mais novidades brevemente...

 

 

Continuar lendo...
1 comentários. Comente este artigo.

Usar gem postgres no mac os intel Instale o postgresql via mac port edite o path em /etc/bashrc incluindo: PATH=${PATH}:/usr/local/mysql/bin:/opt/local/bin:/usr/local/bin:/usr/local/sbin:/opt/local/sbin:/opt/local/lib/postgresql83/bin:$PATH ficando assim: sudo env ARCHFLAGS='-arch i386' gem install postgres -- --with-pgsql-lib-dir=/opt/local/lib/postgresql83 --with-pgsql-include-dir=/opt/local/include/postgresql83
Continuar lendo...
0 comentários. Comente este artigo.

 Acabo de disponibilizar outro plugin, o ActsAsDeleted.

Este plugin serve para que seus registros não sejam apagados do banco.

Mas como assim não apagar?

Certas aplicações necessitam que seus dados não sejam apagados quando um usuário aperta um botão delete, como é o caso no meu projeto atual, onde trabalho com muitos registros financeiros.

Estes dados simplesmente não aparecem mais no sistema, por questões de segurança, de auditoria ou simplesmente porque seu chefe quer assim.

Este plugin disponibiliza métodos para que isso seja possível facilmente, sem a necessidade de ficar criando métodos, inserindo nos models e etc.

Tudo em um só local, cool, DRY ;)

Sim existem 2 outros plugins(só achei  dois),

o acts_as_paranoid 

e o acts_as_soft_deletable

O segundo não me agradou por trabalhar com uma tabela a mais somente para guardar os registros apagados, eu prefiro tê-los na mesma tabela.

O primeiro é muito bom, trabalha com apenas um campo datetime e segue quase a mesma forma que o meu.

Porém tive alguns problemas com validação conforme explico no fim do tutorial, não sei se por que não consegui utilizar direito ou por falha do plugin, entre outras coisas que não me atendiam.

Editado - OBS: cometi um engano, o acts_as_paranoid faz validação sim, usando a mesma opção :scope é possível conseguir a validação

Eu precisava de um campo de flag que não fosse uma data, até para mostrar em possível recuperação de registro na tela do administrador, além de um campo para guardar o usuário que fez a cagada, ops, apagou o registro :D

Enfim nasceu o rebento.

Fonte no github: ActsAsDeleted

Um tutozinho:

REQUER Rails >= 2.1 

 

Instalando o plugin:

script/plugin install git://github.com/kivanio/acts_as_deleted.git

 

Exemplo

=======

 

Em sua migration:

 

class CreateCars < ActiveRecord::Migration

  def self.up

    create_table :cars do |t|

      t.string :name

      # Use "deletestamps" para criar as colunas "deleted" e "deleted_at"

      # Passando o argumento "true", será criada a coluna "deleted_id" para usar com o plugin restful-authentication

      t.deletestamps(true)

      t.timestamps

    end

  end

 

  def self.down

    drop_table :cars

  end

end

 

Em seu model:

class Car < ActiveRecord::Base

  acts_as_deleted

end

 

Depois disso em seu Controller:

class CarController < ApplicationController

  # Use o scope "without_deleted" para procurar por registros que não estão marcados como deletados.

  def index

    @cars = Car.without_deleted.find :all

  end

  # Use o scope "with_deleted" para procurar por registros marcados como deletados.

  def all

    @cars = Car.with_deleted.find :all

  end

 

  #Use apenas find para todos os registros

  def all

    @cars = car.find :all

  end

  # Em sua action destroy use o método "delete" para esconder os registros

  def destroy

   @car = Car.find(params[:id])

    if @car.delete

      flash[:notice] = 'Bye Bye Car.'

    end

    redirect_to(cars_url)

  end

  # Quando você estiver usando o plugin restful-authentication, você pode usa "delete_with_user" para gravar o usuário que apagou o registro.

  def destroy_with_user

     @car = Car.find(params[:id])

      if @car.delete_with_user(current_user.id)

        flash[:notice] = 'Bye Bye Car.'

      end

      redirect_to(cars_url)

    end

end

 

Dicas:

Para usar o validates_uniqueness_of  com este plugin, você deve usar a opção :scope do validates_uniqueness_of.

validates_uniqueness_of :name, :scope => :deleted

Será validado então "name AND deleted" ao invés de apenas "name",

assim você terá ter vários registros apagados com mesmo nome, porém apenas um não apagado com este nome.

 

 

Bem simples!

 

Gostou?

Recomende-me: http://www.workingwithrails.com/recommendation/new/person/5679-kivanio-pereira-barbosa

 

 

Continuar lendo...
12 comentários. Comente este artigo.

Podemos mudar o head da mensagem usando alguma opções: <%= error_messages_for :game, :header_message => "Por favor, tente novamente!", :message => "Nós tivemos alguns problemas ao gravar:" %> fonte: http://www.softiesonrails.com/2008/4/23/better-messages-for-activerecord-validation-errors
Continuar lendo...
0 comentários. Comente este artigo.