Skip to content

Instantly share code, notes, and snippets.

@brunoandradd
Created November 17, 2013 18:54
Show Gist options
  • Save brunoandradd/7516748 to your computer and use it in GitHub Desktop.
Save brunoandradd/7516748 to your computer and use it in GitHub Desktop.
Dsl para relatórios
#definição
module RepositorioRelatorios
extend self
def adicionar(relatorio)
@relatorios ||= []
@relatorios.push relatorio
end
def find(id)
@relatorios ||= []
@relatorios.detect{|r| r.id == id.to_sym}
end
def all
@relatorios ||= []
end
end
def definir_relatorio(id,&bloco)
relatorio = Relatorio.new(id)
relatorio.instance_eval(&bloco)
RepositorioRelatorios.adicionar(relatorio)
end
#uso da dsl
definir_relatorio :cp04 do
nome '04'
nome_completo "Formulário 04"
descricao 'Declaração de Responsabilidade'
template 'relatorios/cp04'
end
@brunoandradd
Copy link
Author

Antes nos tinhamos que definir os dados dos relatorios atraves de um array de hash o que dificultava muito a
manutenção.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment