caligrafo 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/caligrafo.gemspec +1 -1
- data/lib/caligrafo/converter.rb +8 -2
- data/lib/caligrafo/descriptor.rb +1 -1
- data/lib/caligrafo/writer.rb +1 -0
- data/test/caligrafo_test.rb +14 -0
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.7
|
data/caligrafo.gemspec
CHANGED
data/lib/caligrafo/converter.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'bigdecimal'
|
2
|
+
|
1
3
|
module Caligrafo
|
2
4
|
module Converter
|
3
5
|
def self.formatadores
|
@@ -88,11 +90,15 @@ module Caligrafo
|
|
88
90
|
|
89
91
|
class Decimal < Numerico
|
90
92
|
def initialize
|
91
|
-
|
93
|
+
@tipos = [Float, BigDecimal]
|
92
94
|
end
|
93
95
|
|
94
96
|
def value_to_string(valor)
|
95
|
-
|
97
|
+
('%.2f' % valor.to_f).gsub('.','')
|
98
|
+
end
|
99
|
+
|
100
|
+
def string_to_value(string)
|
101
|
+
string.gsub(/(.*)(\d{2})/, '\1.\2').to_f
|
96
102
|
end
|
97
103
|
end
|
98
104
|
|
data/lib/caligrafo/descriptor.rb
CHANGED
@@ -145,7 +145,7 @@ module Caligrafo
|
|
145
145
|
|
146
146
|
formatar(valor)
|
147
147
|
rescue => e
|
148
|
-
raise "Erro ao preencher valor para #{objeto.inspect} no campo #{
|
148
|
+
raise "Erro ao preencher valor para #{objeto.inspect} no campo #{nome} da secao #{secao.nome}: #{e.message}"
|
149
149
|
end
|
150
150
|
|
151
151
|
def formatar(valor)
|
data/lib/caligrafo/writer.rb
CHANGED
@@ -61,6 +61,7 @@ module Caligrafo
|
|
61
61
|
# Sobrescreve a definição do arquivo.
|
62
62
|
def imprimir(nome_campo, valor)
|
63
63
|
campo = self.secao_corrente.campos.find {|campo_pre_definido| campo_pre_definido.nome == nome_campo}
|
64
|
+
raise ArgumentError, "campo '#{nome_campo}' inexistente na seção '#{self.secao_corrente.nome}'" unless campo
|
64
65
|
campo.guarda_valor_para(self.objeto, valor)
|
65
66
|
end
|
66
67
|
end
|
data/test/caligrafo_test.rb
CHANGED
@@ -69,6 +69,20 @@ class CaligrafoTest < Test::Unit::TestCase
|
|
69
69
|
assert_equal 70, rodape.size
|
70
70
|
end
|
71
71
|
|
72
|
+
def test_imprimir_com_campo_inexistente
|
73
|
+
def @portifolio.gerar_arquivo(nome_arquivo)
|
74
|
+
escrever_arquivo nome_arquivo do |f|
|
75
|
+
f.secao :cabecalho do
|
76
|
+
f.imprimir :esse_campo_nao_existe, 'qualquer bobeira'
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
assert_raise ArgumentError do
|
82
|
+
@portifolio.gerar_arquivo 'test/arquivo_gerado.txt'
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
72
86
|
def test_escrever_arquivo_com_linha_predefinida
|
73
87
|
def @portifolio.gerar_arquivo(nome_arquivo)
|
74
88
|
escrever_arquivo nome_arquivo do |f|
|