brdinheiro 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,498 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class DinheiroTest < Test::Unit::TestCase
4
+
5
+ CONTABIL = { "(2,00)" => -2,
6
+ "2,00" => 2,
7
+ "0,00" => 0,
8
+ "0,32" => 0.32,
9
+ "(0,01)" => -0.01 }
10
+
11
+ REAL_CONTABIL = { "R$ (1,00)" => -1,
12
+ "R$ (0,12)" => -0.12,
13
+ "R$ 1,00" => 1,
14
+ "R$ 1,00" => 1,
15
+ "R$ 1,00" => 1,
16
+ "R$ 0,00" => 0 }
17
+
18
+ SOMA = { 0.real => 0.real + 0.real,
19
+ 1.real => 0.real + 1.real,
20
+ 1.real => 1.real + 0.real,
21
+ 2.reais => 1.real + 1.real,
22
+ 2.reais => 0.real + 2.reais,
23
+ 2.reais => 2.reais + 0.real,
24
+ 0.real => 2.real + -2.real,
25
+ 0.real => 0.real + BigDecimal.new("0"),
26
+ 0.3.real => 0.real + 0.3.real,
27
+ -0.3.real => 0.real + -0.3.real,
28
+ -0.03.real => 0 + -0.03.real,
29
+ -0.03.real => 0.real + -0.03,
30
+ -1.03.real => -1.real + -0.03,
31
+ -1.03.real => -1.real + BigDecimal.new("-0.03") }
32
+
33
+ SUBTRACAO = { 0.real => 0.real - 0.real,
34
+ -1.real => 0.real - 1.real,
35
+ 1.real => 1.real - 0.real,
36
+ 0.real => 1.real - 1.real,
37
+ -2.reais => 0.real - 2.reais,
38
+ 2.reais => 2.reais - 0.real,
39
+ -4.reais => -2.reais - 2.reais,
40
+ 0.3.real => 0.3.real - 0.real,
41
+ 0.03.real => 0.03.real - 0.real,
42
+ 0.03.real => 0.06.real - 0.03.real,
43
+ -0.03.real => 0 - 0.03.real,
44
+ -0.03.real => 0.real - 0.03,
45
+ -1.03.real => -1.real - 0.03,
46
+ -1.03.real => -1.real - BigDecimal.new("0.03") }
47
+
48
+ MULTIPLICACAO = { 0.real => 0.real * 0,
49
+ 0.real => 0.real * 1,
50
+ 0.real => 0.real * -1,
51
+ 1.real => 1.real * 1,
52
+ 10.real => 10.real * 1,
53
+ 100.real => 100.real * 1,
54
+ 1000.real => 1000.real * 1,
55
+ 1.real => -1.real * -1,
56
+ -1.real => 1.real * -1,
57
+ -1.real => -1.real * 1,
58
+ 0.1.real => 1.real * 0.1,
59
+ 0.01.real => 1.real * 0.01,
60
+ 0.01.real => 1.real * 0.009,
61
+ 0.01.real => 1.real * 0.005,
62
+ 0.00.real => 1.real * 0.0049,
63
+ 0.1.real => 0.1.real * 1,
64
+ 0.01.real => 0.01.real * 1,
65
+ 0.01.real => 0.009.real * 1,
66
+ 0.00.real => 0.00049.real * 1,
67
+ 0.real => 0.real * 0.real,
68
+ 0.real => 0.real * BigDecimal("0"),
69
+ 1.real => 1.real * 1.real,
70
+ 1.real => 1.real * BigDecimal("1"),
71
+ 1.real => 0.5.real * 2.real,
72
+ 1.real => 0.5.real * BigDecimal("2"),
73
+ 1.real => 1 * 1.real,
74
+ -1.real => -1 * 1.real,
75
+ 1.real => -1 * -1.real,
76
+ 0.01.real => 0.01 * 1.real,
77
+ 0.01.real => 1.real * BigDecimal("0.01"),
78
+ 0.01.real => BigDecimal("0.01") * 1.real }
79
+
80
+ DIVISAO = {
81
+ Dinheiro.new(0.33) => Dinheiro.new(1) / 3,
82
+ Dinheiro.new(33.33) => Dinheiro.new(100) / 3,
83
+ Dinheiro.new(50.00) => Dinheiro.new(100) / 2,
84
+ Dinheiro.new(0.25) => Dinheiro.new(0.5) / 2,
85
+ Dinheiro.new(0.17) => Dinheiro.new(0.5) / 3,
86
+ Dinheiro.new(0.33) => Dinheiro.new(0.33) / 1
87
+ }
88
+
89
+ PARCELAS = {
90
+ [Dinheiro.new(0.33), Dinheiro.new(0.33), Dinheiro.new(0.34)] => Dinheiro.new(1).parcelar(3),
91
+ [Dinheiro.new(33.33), Dinheiro.new(33.33), Dinheiro.new(33.34)] => Dinheiro.new(100).parcelar(3),
92
+ [Dinheiro.new(50.00), Dinheiro.new(50)] => Dinheiro.new(100).parcelar(2),
93
+ [Dinheiro.new(0.25), Dinheiro.new(0.25)] => Dinheiro.new(0.5).parcelar(2),
94
+ [Dinheiro.new(0.16), Dinheiro.new(0.16),Dinheiro.new(0.18)] => Dinheiro.new(0.5).parcelar(3),
95
+ [Dinheiro.new(0.33)] => Dinheiro.new(0.33).parcelar(1) ,
96
+ [Dinheiro.new(0.33)] => Dinheiro.new(0.33).parcelar(1) ,
97
+ }
98
+
99
+
100
+ QUANTIA_COM_FORMATO_VALIDO = [ "1211",
101
+ "1211.",
102
+ "1211.0",
103
+ "1211.23",
104
+ "1211,23",
105
+ "1.211",
106
+ "1.211,00",
107
+ "1.211,01",
108
+ "1.211,1",
109
+ "1.211,",
110
+ "1,",
111
+ "12,",
112
+ "32349898989912,",
113
+ "32.349.898.989.912,",
114
+ "32.349.898.989.912,1",
115
+ "32.349.898.989.912,12",
116
+ "1",
117
+ "1.00",
118
+ "1.01",
119
+ "1.1",
120
+ "1.",
121
+ ".1",
122
+ ".12",
123
+ "0.12",
124
+ "1.12",
125
+ "12.12",
126
+ "12.12",
127
+ "123.12",
128
+ "1,234.12",
129
+ "12,234.12",
130
+ "123,234.12",
131
+ "2,123,234.12",
132
+ ",1",
133
+ ",11",
134
+ ",01",
135
+ "0,01" ]
136
+ QUANTIA_COM_FORMATO_INVALIDO = [ 'teste',
137
+ '12,123,99',
138
+ '12.123.99',
139
+ '1,123,99',
140
+ '1212,39.90' ]
141
+
142
+ COMPARACAO = [ 1.real < 2.reais,
143
+ 1.real <= 2.reais,
144
+ 2.real > 1.real,
145
+ 2.real >= 1.real,
146
+ 1.real == 1.real,
147
+ 1.real >= 1.real,
148
+ 1.real <= 1.real ]
149
+
150
+ COMPARACAO_COM_ESCALAR = [ 1.real < 2.00,
151
+ 1.real <= 2.00,
152
+ 2.real > 1.00,
153
+ 2.real >= 1.00,
154
+ 1.real == 1.00,
155
+ 1.real >= 1.00,
156
+ 1.real <= 1.00 ]
157
+
158
+ ARREDONDAMENTO = { 23049 => 230.49,
159
+ 23049 => 230.4949999999,
160
+ 23050 => 230.495 }
161
+
162
+ PONTO_NO_MILHAR = { "234.175.211" => "234175211",
163
+ "" => "",
164
+ "1" => "1",
165
+ "12" => "12",
166
+ "123" => "123",
167
+ "1.234" => "1234",
168
+ "12.345" => "12345",
169
+ "123.456" => "123456",
170
+ "123.112.211" => "123112211",
171
+ "1.234.567" => "1234567" }
172
+
173
+ QUANTIA_VALIDA = { "0,00" => 0 ,
174
+ "0,00" => 0.0 ,
175
+ "0,00" => "0" ,
176
+ "0,00" => "0,00" ,
177
+ "1,00" => 1 ,
178
+ "1,03" => 1.03 ,
179
+ "1,03" => "1,03" ,
180
+ "0,03" => ",03" ,
181
+ "0,30" => ",3" ,
182
+ "0,03" => ".03" ,
183
+ "0,30" => ".3" ,
184
+ "-0,30" => -0.3 ,
185
+ "-0,03" => -0.03 ,
186
+ "1,00" => "1,00" ,
187
+ "-1,00" => -1 ,
188
+ "-1,00" => -1.0 ,
189
+ "-1,00" => "-1" ,
190
+ "-1,00" => "-1,00" ,
191
+ "-2,30" => "-2,30" ,
192
+ "2,30" => "2,30" ,
193
+ "2,30" => 2.30 ,
194
+ "2,30" => 2.3 ,
195
+ "1.211,00" => "1211,00" ,
196
+ "1.211,01" => "1211,01" ,
197
+ "1.211,50" => "1211,5" ,
198
+ "1.211,00" => "1211," ,
199
+ "1.211,00" => "1211" ,
200
+ "1.211,00" => "1211.00" ,
201
+ "1.211,01" => "1211.01" ,
202
+ "1.211,20" => "1211.2" ,
203
+ "1.211,00" => "1211." ,
204
+ "1.211,00" => "1211" ,
205
+ "1.211,00" => "1.211" ,
206
+ "123.112.211,35" => "123112211,35" ,
207
+ "-123.112.211,35" => "-123112211,35" ,
208
+ "123.112.211,35" => "+123112211,35" }
209
+
210
+ PARTE_INTEIRA = [ -1, -123112211, 0, 1, 12344545 ]
211
+
212
+
213
+ def setup
214
+ tornar_metodos_publicos Dinheiro
215
+ @dinheiro = 1.real
216
+ end
217
+
218
+ def testa_se_cria_dinheiro_a_partir_de_quantias_validos
219
+ QUANTIA_VALIDA.each do |esperado, quantia|
220
+ assert_equal esperado, Dinheiro.new(quantia).to_s, "Deveria ter vindo o quantia: #{esperado} quando recebeu #{quantia}"
221
+ end
222
+ end
223
+
224
+ # coloca_ponto_no_milhar
225
+ def testa_se_coloca_ponto_no_milhar
226
+ PONTO_NO_MILHAR.each do |esperado, quantia|
227
+ { esperado => quantia,
228
+ "-#{esperado}" => "-#{quantia}" }.each do |esperado, quantia|
229
+ assert_equal esperado, @dinheiro.inteiro_com_milhar(quantia)
230
+ end
231
+ end
232
+ end
233
+
234
+ def testa_to_s
235
+ assert_equal "1,00", Dinheiro.new(1).to_s
236
+ assert_equal "1.000,00", Dinheiro.new(1000).to_s
237
+ end
238
+
239
+ # real
240
+ def testa_real_nao_eh_dinheiro
241
+ assert_kind_of(Dinheiro, 1.real)
242
+ end
243
+
244
+ def testa_real_eh_dinheiro
245
+ assert_kind_of(Dinheiro, Dinheiro.new(1).real)
246
+ end
247
+
248
+ def testa_real_contabil
249
+ REAL_CONTABIL.each { |esperado, quantia| assert_equal esperado, Dinheiro.new(quantia).real_contabil }
250
+ end
251
+
252
+ def testa_reais_contabeis
253
+ REAL_CONTABIL.each { |esperado, quantia| assert_equal esperado, Dinheiro.new(quantia).reais_contabeis }
254
+ end
255
+
256
+ # reais
257
+ def testa_reais
258
+ assert_equal Dinheiro.new("2,00"), Dinheiro.new(2).reais
259
+ end
260
+
261
+ def testa_contabil
262
+ CONTABIL.each { |esperado, quantia| assert_equal esperado, Dinheiro.new(quantia).contabil }
263
+ end
264
+
265
+ # real_formatado
266
+ def test_real_formatado
267
+ assert_equal "R$ 2,00", Dinheiro.new(2).real_formatado
268
+ end
269
+
270
+ # ==
271
+ def testa_igualdade
272
+ assert_equal Dinheiro.new(1), Dinheiro.new(1)
273
+ end
274
+
275
+ def testa_igualdade_quando_passa_possivel_dinheiro
276
+ assert_equal Dinheiro.new(1), 1.0
277
+ end
278
+
279
+ def testa_igualdade_quando_passa_algo_que_nao_seja_dinheiro
280
+ assert_equal false, Dinheiro.new(1) == 'salario'
281
+ end
282
+
283
+ # / (divisao)
284
+ def testa_divisao
285
+ DIVISAO.each { |parcelas, divisao| assert_equal parcelas, divisao }
286
+ end
287
+
288
+ def testa_divisao_por_zero
289
+ assert_raise(ZeroDivisionError) { 1.real / 0 }
290
+ end
291
+
292
+ def testa_divisao_por_algo_que_nao_seja_um_escalar
293
+ assert_raise(DivisaPorNaoEscalarError) { 10.reais / 2.reais }
294
+ end
295
+
296
+ # parcelar
297
+ def testa_parcelar
298
+ PARCELAS.each { |parcelas, divisao| assert_equal parcelas, divisao }
299
+ end
300
+
301
+ def testa_parcelar_por_zero
302
+ assert_raise(ZeroDivisionError) { 1.real.parcelar 0 }
303
+ end
304
+
305
+ def testa_parcelar_por_algo_que_nao_seja_um_escalar
306
+ assert_raise(DivisaPorNaoEscalarError) { 10.reais.parcelar(2.reais) }
307
+ end
308
+
309
+ # initialize
310
+ def testa_se_cria_dinheiro_a_partir_de_float
311
+ verifica_se_cria_dinheiro_para 1.0
312
+ end
313
+
314
+ def testa_se_cria_dinheiro_a_partir_de_fixnum
315
+ verifica_se_cria_dinheiro_para 1
316
+ end
317
+
318
+ def testa_se_cria_dinheiro_a_partir_de_bigdecimal
319
+ verifica_se_cria_dinheiro_para BigDecimal.new("1")
320
+ end
321
+
322
+ def testa_se_cria_dinheiro_a_partir_de_string
323
+ verifica_se_cria_dinheiro_para "1"
324
+ end
325
+
326
+ def testa_se_rejeita_criacao_de_dinheiro_a_partir_de_string_invalida
327
+ QUANTIA_COM_FORMATO_INVALIDO.each do |quantia|
328
+ assert_raise DinheiroInvalidoError, "Deveria ter rejeitado [#{quantia}]" do
329
+ Dinheiro.new quantia
330
+ end
331
+ end
332
+ end
333
+
334
+ # + (soma)
335
+ def testa_soma
336
+ SOMA.each{ |esperado, soma| assert_equal esperado, soma }
337
+ end
338
+
339
+ # - (subtracao)
340
+ def testa_subtracao
341
+ SUBTRACAO.each { |esperado, subtracao| assert_equal esperado, subtracao }
342
+ end
343
+
344
+ # * (multiplicacao)
345
+ def testa_multiplicacao
346
+ MULTIPLICACAO.each { |esperado, multiplicacao| assert_equal esperado, multiplicacao }
347
+ end
348
+
349
+ # quantia_de
350
+ def testa_quantia_de
351
+ assert_equal 0, @dinheiro.quantia_de(0.real)
352
+ assert_equal 0, @dinheiro.quantia_de(0)
353
+ end
354
+
355
+ #por_extenso
356
+ def testa_por_extenso
357
+ assert_equal 'um real', 1.real.por_extenso
358
+ assert_equal 'um centavo', (0.01).real.por_extenso
359
+ assert_equal 'cem reais', 100.real.por_extenso
360
+ assert_equal 'cem reais e um centavo', (100.01).real.por_extenso
361
+ end
362
+
363
+ #por_extenso_em_reais
364
+ def testa_por_extenso_em_reais
365
+ assert_equal 'um real', 1.real.por_extenso_em_reais
366
+ assert_equal 'um centavo', (0.01).real.por_extenso_em_reais
367
+ assert_equal 'cem reais', 100.real.por_extenso_em_reais
368
+ assert_equal 'cem reais e um centavo', (100.01).real.por_extenso_em_reais
369
+ end
370
+
371
+ def testa_por_extenso_negativo
372
+ assert_equal 'um real negativo', -1.real.por_extenso_em_reais
373
+ assert_equal 'um centavo negativo', (-0.01).real.por_extenso_em_reais
374
+ assert_equal 'cem reais negativos', -100.real.por_extenso_em_reais
375
+ assert_equal 'cem reais e um centavo negativos', (-100.01).real.por_extenso_em_reais
376
+ assert_equal 'cento e dez reais negativos', (-110).real.por_extenso_em_reais
377
+ assert_equal 'vinte e dois reais negativos', -22.reais.por_extenso
378
+ assert_not_equal 'vinte e dois centavos negativos', -22.reais.por_extenso
379
+ assert_not_equal 'vinte e dois centavos', -22.reais.por_extenso
380
+ end
381
+
382
+ # to_f
383
+ def testa_to_f
384
+ assert_equal 2.30, 2.30.real.to_f
385
+ assert_equal 1000, 1000.real.to_f
386
+ end
387
+
388
+ # quantia_respeita_formato?
389
+ def testa_se_quantia_respeita_formato
390
+ QUANTIA_COM_FORMATO_VALIDO.each { |quantia| verifica_se_quantia_respeita_formato quantia }
391
+ end
392
+
393
+ # >, <, == (ordenacao)
394
+ def testa_comparacao_entre_dinheiro
395
+ COMPARACAO.each { |comparacao| assert comparacao }
396
+ end
397
+
398
+ def testa_comparacao_entre_possivel_dinheiro
399
+ COMPARACAO_COM_ESCALAR.each { |comparacao_com_escalar| assert comparacao_com_escalar }
400
+ end
401
+
402
+ # decimal
403
+ def testa_decimal_quando_todas_as_casas_estao_preenchidas
404
+ verifica_decimal("12")
405
+ end
406
+
407
+ def testa_decimal_quando_apenas_uma_das_casas_esta_preenchida
408
+ verifica_decimal("10", "1")
409
+ end
410
+
411
+ def testa_decimal_quando_nenhuma_das_casas_esta_preenchida
412
+ verifica_decimal("00", "")
413
+ end
414
+
415
+ def testa_se_transforma_em_string_que_represente_a_quantia_quando_tem_tres_digitos
416
+ verifica_se_transforma_em_string_corretamente "1.23", 123
417
+ end
418
+
419
+ def testa_se_transforma_em_string_que_represente_a_quantia_quando_tem_dois_digitos
420
+ verifica_se_transforma_em_string_corretamente "0.12", 12
421
+ end
422
+
423
+ def testa_se_transforma_em_string_que_represente_a_quantia_quando_tem_um_digito
424
+ verifica_se_transforma_em_string_corretamente "0.03", 3
425
+ end
426
+
427
+ def testa_se_transforma_em_string_para_valores_especiais
428
+ verifica_se_transforma_em_string_corretamente "-123112211.00", -12311221100
429
+ end
430
+
431
+ # parte_inteira
432
+ def testa_parte_inteira
433
+ PARTE_INTEIRA.each { |quantia| assert_equal "#{quantia}", Dinheiro.new(quantia).parte_inteira }
434
+ end
435
+
436
+ def testa_se_arredonda_valores_corretamente
437
+ ARREDONDAMENTO.each do |esperado, quantia|
438
+ assert_equal esperado, Dinheiro.new(quantia).quantia, "Deveria retornar #{esperado} para #{quantia}"
439
+ end
440
+ end
441
+
442
+ def testa_se_valor_decimal_cria_o_big_decimal_corretamente
443
+ assert_equal BigDecimal.new("1234.56"), Dinheiro.new("1234,56").valor_decimal
444
+ end
445
+
446
+ def testa_soma_de_dinheiro_com_big_decimal
447
+ assert_equal Dinheiro.new(200), BigDecimal.new("100").reais + "100".reais
448
+ end
449
+
450
+ def testa_zero_quando_eh_zero
451
+ assert Dinheiro.new(0).zero?
452
+ end
453
+
454
+ def testa_zero_quando_nao_eh_zero
455
+ assert !Dinheiro.new(1).zero?
456
+ end
457
+
458
+ private
459
+
460
+ def verifica_se_transforma_em_string_corretamente(quantia_esperada, quantia)
461
+ assert_equal quantia_esperada, @dinheiro.transforma_em_string_que_represente_a_quantia(quantia)
462
+ end
463
+
464
+ def verifica_decimal(esperado, quantia = esperado)
465
+ assert_equal esperado, @dinheiro.decimal("." + quantia)
466
+ assert_equal esperado, @dinheiro.decimal("," + quantia)
467
+ assert_equal esperado, @dinheiro.decimal(quantia) if quantia.blank?
468
+ end
469
+
470
+ def verifica_se_quantia_respeita_formato(quantia)
471
+ formatos_validos(quantia).each do |quantia_str|
472
+ assert 1.real.quantia_respeita_formato?(quantia_str), "O sistema deveria considerar o quantia '#{quantia_str}' dentro do formato valido."
473
+ end
474
+ end
475
+
476
+ def formatos_validos(quantia)
477
+ formatos_validos = []
478
+ quantias_validas(quantia).each do |quantia|
479
+ formatos_validos << quantia
480
+ [ "R$", "r$" ].each do |simbolo|
481
+ [ "", " ", " " ].each do |espacos|
482
+ formatos_validos << "#{simbolo}#{espacos}#{quantia}"
483
+ end
484
+ end
485
+ end
486
+ formatos_validos
487
+ end
488
+
489
+ def quantias_validas(quantia)
490
+ return [quantia] if [ ".", "," ].include?(quantia[0..0])
491
+ [ quantia, "-#{quantia}" ]
492
+ end
493
+
494
+ def verifica_se_cria_dinheiro_para(quantia)
495
+ assert quantia.para_dinheiro.kind_of?(Dinheiro)
496
+ end
497
+
498
+ end
@@ -0,0 +1,16 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../lib/brdinheiro'
3
+
4
+
5
+ def tornar_metodos_publicos(clazz)
6
+ clazz.class_eval do
7
+ private_instance_methods.each { |instance_method| public instance_method }
8
+ private_methods.each { |method| public_class_method method }
9
+ end
10
+ end
11
+
12
+ def p80 text
13
+ p '*'*80
14
+ p text
15
+ p '*'*80
16
+ end
metadata ADDED
@@ -0,0 +1,86 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: brdinheiro
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - "Marcos Tapaj\xC3\xB3s"
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-06-22 00:00:00 -03:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: actionpack
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.4.2
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: activerecord
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 1.15.3
32
+ version:
33
+ description: "brdinheiro \xC3\xA9 uma das gems que compoem o Brazilian Rails"
34
+ email: tapajos@gmail.com
35
+ executables: []
36
+
37
+ extensions: []
38
+
39
+ extra_rdoc_files: []
40
+
41
+ files:
42
+ - Rakefile
43
+ - README
44
+ - CHANGELOG
45
+ - TODO
46
+ - MIT-LICENSE
47
+ - lib/brdinheiro
48
+ - lib/brdinheiro/dinheiro.rb
49
+ - lib/brdinheiro/dinheiro_active_record.rb
50
+ - lib/brdinheiro/dinheiro_util.rb
51
+ - lib/brdinheiro/excecoes.rb
52
+ - lib/brdinheiro/number_portuguese.rb
53
+ - lib/brdinheiro/version.rb
54
+ - lib/brdinheiro.rb
55
+ - test/br_dinheiro_test.rb
56
+ - test/dinheiro_active_record_test.rb
57
+ - test/dinheiro_test.rb
58
+ - test/test_helper.rb
59
+ has_rdoc: true
60
+ homepage: http://www.improveit.com.br/software_livre/brazilian_rails
61
+ post_install_message:
62
+ rdoc_options: []
63
+
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: "0"
71
+ version:
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: "0"
77
+ version:
78
+ requirements:
79
+ - none
80
+ rubyforge_project: brdinheiro
81
+ rubygems_version: 1.1.1
82
+ signing_key:
83
+ specification_version: 2
84
+ summary: "brdinheiro \xC3\xA9 uma das gems que compoem o Brazilian Rails"
85
+ test_files: []
86
+