brnumeros 3.0.4 → 3.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +1 -1
- data/lib/brnumeros/number_portuguese.rb +47 -47
- data/lib/brnumeros/version.rb +1 -1
- data/lib/brnumeros.rb +1 -1
- data/test/number_test.rb +34 -34
- data/test/test_helper.rb +2 -2
- metadata +17 -5
data/Rakefile
CHANGED
@@ -1,48 +1,48 @@
|
|
1
1
|
# encoding: UTF-8
|
2
|
-
module Extenso
|
2
|
+
module Extenso
|
3
3
|
@@unidade = {
|
4
|
-
0 => "zero",
|
5
|
-
1 => "um",
|
6
|
-
2 => "dois",
|
7
|
-
3 => "três",
|
8
|
-
4 => "quatro",
|
9
|
-
5 => "cinco",
|
10
|
-
6 => "seis",
|
11
|
-
7 => "sete",
|
12
|
-
8 => "oito",
|
13
|
-
9 => "nove"
|
4
|
+
0 => "zero",
|
5
|
+
1 => "um",
|
6
|
+
2 => "dois",
|
7
|
+
3 => "três",
|
8
|
+
4 => "quatro",
|
9
|
+
5 => "cinco",
|
10
|
+
6 => "seis",
|
11
|
+
7 => "sete",
|
12
|
+
8 => "oito",
|
13
|
+
9 => "nove"
|
14
14
|
}
|
15
15
|
@@dezena = {
|
16
|
-
10 => "dez",
|
17
|
-
11 => "onze",
|
18
|
-
12 => "doze",
|
19
|
-
13 => "treze",
|
20
|
-
14 => "quatorze",
|
21
|
-
15 => "quinze",
|
22
|
-
16 => "dezesseis",
|
23
|
-
17 => "dezessete",
|
24
|
-
18 => "dezoito",
|
25
|
-
19 => "dezenove",
|
26
|
-
20 => "vinte",
|
27
|
-
30 => "trinta",
|
28
|
-
40 => "quarenta",
|
29
|
-
50 => "cinquenta",
|
30
|
-
60 => "sessenta",
|
31
|
-
70 => "setenta",
|
32
|
-
80 => "oitenta",
|
16
|
+
10 => "dez",
|
17
|
+
11 => "onze",
|
18
|
+
12 => "doze",
|
19
|
+
13 => "treze",
|
20
|
+
14 => "quatorze",
|
21
|
+
15 => "quinze",
|
22
|
+
16 => "dezesseis",
|
23
|
+
17 => "dezessete",
|
24
|
+
18 => "dezoito",
|
25
|
+
19 => "dezenove",
|
26
|
+
20 => "vinte",
|
27
|
+
30 => "trinta",
|
28
|
+
40 => "quarenta",
|
29
|
+
50 => "cinquenta",
|
30
|
+
60 => "sessenta",
|
31
|
+
70 => "setenta",
|
32
|
+
80 => "oitenta",
|
33
33
|
90 => "noventa" }
|
34
|
-
@@centena = {100 => "cento",
|
35
|
-
200 => "duzentos",
|
36
|
-
300 => "trezentos",
|
37
|
-
400 => "quatrocentos",
|
38
|
-
500 => "quinhentos",
|
39
|
-
600 => "seiscentos",
|
40
|
-
700 => "setecentos",
|
41
|
-
800 => "oitocentos",
|
34
|
+
@@centena = {100 => "cento",
|
35
|
+
200 => "duzentos",
|
36
|
+
300 => "trezentos",
|
37
|
+
400 => "quatrocentos",
|
38
|
+
500 => "quinhentos",
|
39
|
+
600 => "seiscentos",
|
40
|
+
700 => "setecentos",
|
41
|
+
800 => "oitocentos",
|
42
42
|
900 => "novecentos" }
|
43
|
-
|
43
|
+
|
44
44
|
# Escreve o numero por extenso.
|
45
|
-
#
|
45
|
+
#
|
46
46
|
# Exemplo:
|
47
47
|
# 1.por_extenso ==> 'um'
|
48
48
|
# 100.por_extenso ==> 'cem'
|
@@ -50,16 +50,16 @@ module Extenso
|
|
50
50
|
def por_extenso
|
51
51
|
Extenso.por_extenso(self)
|
52
52
|
end
|
53
|
-
|
53
|
+
|
54
54
|
# Alias para o metodo por_extenso
|
55
55
|
alias_method :to_extenso, :por_extenso
|
56
|
-
|
56
|
+
|
57
57
|
# Escreve o numero por extenso.
|
58
|
-
#
|
58
|
+
#
|
59
59
|
# Exemplo:
|
60
60
|
# Extenso.por_extenso(1) ==> "um"
|
61
61
|
# Extenso.por_extenso(100) ==> "cem"
|
62
|
-
# Extenso.por_extenso(158) ==> "cento e cinquenta e oito"
|
62
|
+
# Extenso.por_extenso(158) ==> "cento e cinquenta e oito"
|
63
63
|
def Extenso.por_extenso(numero)
|
64
64
|
negativo=(numero<0)? "menos " : ""
|
65
65
|
n=numero.to_i.abs
|
@@ -102,25 +102,25 @@ end
|
|
102
102
|
|
103
103
|
module ExtensoReal
|
104
104
|
include Extenso
|
105
|
-
|
105
|
+
|
106
106
|
# Escreve por extenso em reais.
|
107
|
-
#
|
107
|
+
#
|
108
108
|
# Exemplo:
|
109
109
|
# 1.por_extenso_em_reais ==> 'um real'
|
110
110
|
# (100.58).por_extenso_em_reais ==> 'cem reais e cinquenta e oito centavos'
|
111
111
|
def por_extenso_em_reais
|
112
112
|
ExtensoReal.por_extenso_em_reais(self)
|
113
113
|
end
|
114
|
-
|
114
|
+
|
115
115
|
# Alias para por_extenso_em_reais
|
116
116
|
alias_method :to_extenso_real, :por_extenso_em_reais
|
117
117
|
|
118
118
|
# Escreve o numero por extenso em reais.
|
119
|
-
#
|
119
|
+
#
|
120
120
|
# Exemplo:
|
121
121
|
# Extenso.por_extenso_em_reais(1) ==> "um real"
|
122
122
|
# Extenso.por_extenso_em_reais(100) ==> "cem reais"
|
123
|
-
# Extenso.por_extenso_em_reais(100.58) ==> "cem reais e cinquenta e oito centavos"
|
123
|
+
# Extenso.por_extenso_em_reais(100.58) ==> "cem reais e cinquenta e oito centavos"
|
124
124
|
def ExtensoReal.por_extenso_em_reais(valor)
|
125
125
|
negativo=(valor<0)? " negativo" : ""
|
126
126
|
negativos=(valor<0)? " negativos" : ""
|
data/lib/brnumeros/version.rb
CHANGED
data/lib/brnumeros.rb
CHANGED
data/test/number_test.rb
CHANGED
@@ -14,7 +14,7 @@ class NumberTest < Test::Unit::TestCase
|
|
14
14
|
assert_equal 'oito', 8.por_extenso
|
15
15
|
assert_equal 'nove', 9.por_extenso
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
def test_dezenas
|
19
19
|
assert_equal 'dez', 10.por_extenso
|
20
20
|
assert_equal 'onze', 11.por_extenso
|
@@ -35,7 +35,7 @@ class NumberTest < Test::Unit::TestCase
|
|
35
35
|
assert_equal 'oitenta', 80.por_extenso
|
36
36
|
assert_equal 'noventa', 90.por_extenso
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
def test_dezenas_com_unidades
|
40
40
|
assert_equal 'vinte e um', 21.por_extenso
|
41
41
|
assert_equal 'trinta e dois', 32.por_extenso
|
@@ -46,7 +46,7 @@ class NumberTest < Test::Unit::TestCase
|
|
46
46
|
assert_equal 'oitenta e sete', 87.por_extenso
|
47
47
|
assert_equal 'noventa e oito', 98.por_extenso
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
50
|
def test_centenas
|
51
51
|
assert_equal 'cem', 100.por_extenso
|
52
52
|
assert_equal 'duzentos', 200.por_extenso
|
@@ -58,45 +58,45 @@ class NumberTest < Test::Unit::TestCase
|
|
58
58
|
assert_equal 'oitocentos', 800.por_extenso
|
59
59
|
assert_equal 'novecentos', 900.por_extenso
|
60
60
|
end
|
61
|
-
|
62
|
-
def test_centenas_com_dezenas_e_unidades
|
61
|
+
|
62
|
+
def test_centenas_com_dezenas_e_unidades
|
63
63
|
assert_equal 'cento e um', 101.por_extenso
|
64
64
|
assert_equal 'cento e dez', 110.por_extenso
|
65
65
|
assert_equal 'cento e onze', 111.por_extenso
|
66
|
-
|
66
|
+
|
67
67
|
assert_equal 'duzentos e dois', 202.por_extenso
|
68
68
|
assert_equal 'duzentos e vinte', 220.por_extenso
|
69
69
|
assert_equal 'duzentos e vinte e dois', 222.por_extenso
|
70
|
-
|
70
|
+
|
71
71
|
assert_equal 'trezentos e três', 303.por_extenso
|
72
72
|
assert_equal 'trezentos e trinta', 330.por_extenso
|
73
73
|
assert_equal 'trezentos e trinta e três', 333.por_extenso
|
74
|
-
|
74
|
+
|
75
75
|
assert_equal 'quatrocentos e quatro', 404.por_extenso
|
76
76
|
assert_equal 'quatrocentos e quarenta', 440.por_extenso
|
77
77
|
assert_equal 'quatrocentos e quarenta e quatro', 444.por_extenso
|
78
|
-
|
78
|
+
|
79
79
|
assert_equal 'quinhentos e cinco', 505.por_extenso
|
80
80
|
assert_equal 'quinhentos e cinquenta', 550.por_extenso
|
81
81
|
assert_equal 'quinhentos e cinquenta e cinco', 555.por_extenso
|
82
|
-
|
82
|
+
|
83
83
|
assert_equal 'seiscentos e seis', 606.por_extenso
|
84
84
|
assert_equal 'seiscentos e sessenta', 660.por_extenso
|
85
85
|
assert_equal 'seiscentos e sessenta e seis', 666.por_extenso
|
86
|
-
|
86
|
+
|
87
87
|
assert_equal 'setecentos e sete', 707.por_extenso
|
88
88
|
assert_equal 'setecentos e setenta', 770.por_extenso
|
89
89
|
assert_equal 'setecentos e setenta e sete', 777.por_extenso
|
90
|
-
|
90
|
+
|
91
91
|
assert_equal 'oitocentos e oito', 808.por_extenso
|
92
92
|
assert_equal 'oitocentos e oitenta', 880.por_extenso
|
93
93
|
assert_equal 'oitocentos e oitenta e oito', 888.por_extenso
|
94
|
-
|
94
|
+
|
95
95
|
assert_equal 'novecentos e nove', 909.por_extenso
|
96
96
|
assert_equal 'novecentos e noventa', 990.por_extenso
|
97
97
|
assert_equal 'novecentos e noventa e nove', 999.por_extenso
|
98
98
|
end
|
99
|
-
|
99
|
+
|
100
100
|
def test_mil
|
101
101
|
assert_equal 'um mil', 1_000.por_extenso
|
102
102
|
assert_equal 'um mil e um', 1_001.por_extenso
|
@@ -107,10 +107,10 @@ class NumberTest < Test::Unit::TestCase
|
|
107
107
|
assert_equal 'um mil e cento e dez', 1_110.por_extenso
|
108
108
|
assert_equal 'um mil e cento e onze', 1_111.por_extenso
|
109
109
|
assert_equal 'dez mil', 10_000.por_extenso
|
110
|
-
assert_equal 'cem mil', 100_000.por_extenso
|
110
|
+
assert_equal 'cem mil', 100_000.por_extenso
|
111
111
|
assert_equal 'cento e dez mil', 110_000.por_extenso
|
112
112
|
end
|
113
|
-
|
113
|
+
|
114
114
|
def test_milhao
|
115
115
|
assert_equal 'um milhão', 1_000_000.por_extenso
|
116
116
|
assert_equal 'um milhão e um mil e um', 1_001_001.por_extenso
|
@@ -121,10 +121,10 @@ class NumberTest < Test::Unit::TestCase
|
|
121
121
|
assert_equal 'um milhão e cento e dez mil e cento e dez', 1_110_110.por_extenso
|
122
122
|
assert_equal 'um milhão e cento e onze mil e cento e onze', 1_111_111.por_extenso
|
123
123
|
assert_equal 'dez milhões', 10_000_000.por_extenso
|
124
|
-
assert_equal 'cem milhões', 100_000_000.por_extenso
|
124
|
+
assert_equal 'cem milhões', 100_000_000.por_extenso
|
125
125
|
assert_equal 'cento e dez milhões', 110_000_000.por_extenso
|
126
126
|
end
|
127
|
-
|
127
|
+
|
128
128
|
def test_bilhao
|
129
129
|
assert_equal 'um bilhão', 1_000_000_000.por_extenso
|
130
130
|
assert_equal 'um bilhão e um milhão e um mil e um', 1_001_001_001.por_extenso
|
@@ -135,10 +135,10 @@ class NumberTest < Test::Unit::TestCase
|
|
135
135
|
assert_equal 'um bilhão e cento e dez milhões e cento e dez mil e cento e dez', 1_110_110_110.por_extenso
|
136
136
|
assert_equal 'um bilhão e cento e onze milhões e cento e onze mil e cento e onze', 1_111_111_111.por_extenso
|
137
137
|
assert_equal 'dez bilhões', 10_000_000_000.por_extenso
|
138
|
-
assert_equal 'cem bilhões', 100_000_000_000.por_extenso
|
138
|
+
assert_equal 'cem bilhões', 100_000_000_000.por_extenso
|
139
139
|
assert_equal 'cento e dez bilhões', 110_000_000_000.por_extenso
|
140
140
|
end
|
141
|
-
|
141
|
+
|
142
142
|
def test_trilhao
|
143
143
|
assert_equal 'um trilhão', 1_000_000_000_000.por_extenso
|
144
144
|
assert_equal 'um trilhão e um bilhão e um milhão e um mil e um', 1_001_001_001_001.por_extenso
|
@@ -149,10 +149,10 @@ class NumberTest < Test::Unit::TestCase
|
|
149
149
|
assert_equal 'um trilhão e cento e dez bilhões e cento e dez milhões e cento e dez mil e cento e dez', 1_110_110_110_110.por_extenso
|
150
150
|
assert_equal 'um trilhão e cento e onze bilhões e cento e onze milhões e cento e onze mil e cento e onze', 1_111_111_111_111.por_extenso
|
151
151
|
assert_equal 'dez trilhões', 10_000_000_000_000.por_extenso
|
152
|
-
assert_equal 'cem trilhões', 100_000_000_000_000.por_extenso
|
152
|
+
assert_equal 'cem trilhões', 100_000_000_000_000.por_extenso
|
153
153
|
assert_equal 'cento e dez trilhões', 110_000_000_000_000.por_extenso
|
154
154
|
end
|
155
|
-
|
155
|
+
|
156
156
|
def test_numero_maior_que_trilhao_eh_rejetaido
|
157
157
|
begin
|
158
158
|
1_000_000_000_000_000.por_extenso
|
@@ -162,20 +162,20 @@ class NumberTest < Test::Unit::TestCase
|
|
162
162
|
assert_equal 'Valor excede o permitido: 1000000000000000', e.message
|
163
163
|
end
|
164
164
|
end
|
165
|
-
|
165
|
+
|
166
166
|
def test_valores_em_real
|
167
167
|
assert_equal 'grátis', 0.por_extenso_em_reais
|
168
|
-
assert_equal 'um centavo', 0.01.por_extenso_em_reais
|
169
|
-
assert_equal 'dois centavos', 0.02.por_extenso_em_reais
|
170
|
-
assert_equal 'vinte e um centavos', 0.21.por_extenso_em_reais
|
171
|
-
assert_equal 'um real', 1.00.por_extenso_em_reais
|
172
|
-
assert_equal 'um real', 1.por_extenso_em_reais
|
173
|
-
assert_equal 'um real e um centavo', 1.01.por_extenso_em_reais
|
174
|
-
assert_equal 'um real e dois centavos', 1.02.por_extenso_em_reais
|
175
|
-
assert_equal 'um milhão de reais e um centavo', 1_000_000.01.por_extenso_em_reais
|
176
|
-
assert_equal 'dois milhões de reais e um centavo', 2_000_000.01.por_extenso_em_reais
|
177
|
-
assert_equal 'dois milhões e duzentos reais e um centavo', 2_000_200.01.por_extenso_em_reais
|
178
|
-
assert_equal 'um bilhão de reais e um centavo', 1_000_000_000.01.por_extenso_em_reais
|
168
|
+
assert_equal 'um centavo', 0.01.por_extenso_em_reais
|
169
|
+
assert_equal 'dois centavos', 0.02.por_extenso_em_reais
|
170
|
+
assert_equal 'vinte e um centavos', 0.21.por_extenso_em_reais
|
171
|
+
assert_equal 'um real', 1.00.por_extenso_em_reais
|
172
|
+
assert_equal 'um real', 1.por_extenso_em_reais
|
173
|
+
assert_equal 'um real e um centavo', 1.01.por_extenso_em_reais
|
174
|
+
assert_equal 'um real e dois centavos', 1.02.por_extenso_em_reais
|
175
|
+
assert_equal 'um milhão de reais e um centavo', 1_000_000.01.por_extenso_em_reais
|
176
|
+
assert_equal 'dois milhões de reais e um centavo', 2_000_000.01.por_extenso_em_reais
|
177
|
+
assert_equal 'dois milhões e duzentos reais e um centavo', 2_000_200.01.por_extenso_em_reais
|
178
|
+
assert_equal 'um bilhão de reais e um centavo', 1_000_000_000.01.por_extenso_em_reais
|
179
179
|
assert_equal 'um trilhão de reais e um centavo', 1_000_000_000_000.01.por_extenso_em_reais
|
180
180
|
assert_equal 'cento e vinte e oito mil e duzentos e quarenta e três reais e vinte e oito centavos', 128_243.28.por_extenso_em_reais
|
181
181
|
assert_equal 'oitenta e dois mil e trezentos e oitenta e nove reais e dezenove centavos', 82_389.19.por_extenso_em_reais
|
data/test/test_helper.rb
CHANGED
@@ -4,8 +4,8 @@ require File.dirname(__FILE__) + '/../lib/brnumeros'
|
|
4
4
|
def tornar_metodos_publicos(clazz)
|
5
5
|
clazz.class_eval do
|
6
6
|
private_instance_methods.each { |instance_method| public instance_method }
|
7
|
-
private_methods.each { |method| public_class_method method }
|
8
|
-
end
|
7
|
+
private_methods.each { |method| public_class_method method }
|
8
|
+
end
|
9
9
|
end
|
10
10
|
|
11
11
|
def p80 text
|
metadata
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brnumeros
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 3
|
7
|
+
- 0
|
8
|
+
- 5
|
9
|
+
version: 3.0.5
|
6
10
|
platform: ruby
|
7
11
|
authors:
|
8
12
|
- "Marcos Tapaj\xC3\xB3s"
|
@@ -16,19 +20,21 @@ autorequire:
|
|
16
20
|
bindir: bin
|
17
21
|
cert_chain: []
|
18
22
|
|
19
|
-
date:
|
23
|
+
date: 2012-01-02 00:00:00 -02:00
|
20
24
|
default_executable:
|
21
25
|
dependencies:
|
22
26
|
- !ruby/object:Gem::Dependency
|
23
27
|
name: rake
|
24
|
-
prerelease: false
|
25
28
|
requirement: &id001 !ruby/object:Gem::Requirement
|
26
29
|
none: false
|
27
30
|
requirements:
|
28
31
|
- - ">="
|
29
32
|
- !ruby/object:Gem::Version
|
33
|
+
segments:
|
34
|
+
- 0
|
30
35
|
version: "0"
|
31
36
|
type: :development
|
37
|
+
prerelease: false
|
32
38
|
version_requirements: *id001
|
33
39
|
description: "brnumeros \xC3\xA9 uma das gems que compoem o Brazilian Rails"
|
34
40
|
email:
|
@@ -69,17 +75,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
69
75
|
requirements:
|
70
76
|
- - ">="
|
71
77
|
- !ruby/object:Gem::Version
|
78
|
+
hash: 806721022670169663
|
79
|
+
segments:
|
80
|
+
- 0
|
72
81
|
version: "0"
|
73
82
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
83
|
none: false
|
75
84
|
requirements:
|
76
85
|
- - ">="
|
77
86
|
- !ruby/object:Gem::Version
|
87
|
+
hash: 806721022670169663
|
88
|
+
segments:
|
89
|
+
- 0
|
78
90
|
version: "0"
|
79
91
|
requirements:
|
80
92
|
- none
|
81
93
|
rubyforge_project: brnumeros
|
82
|
-
rubygems_version: 1.
|
94
|
+
rubygems_version: 1.3.7
|
83
95
|
signing_key:
|
84
96
|
specification_version: 3
|
85
97
|
summary: "brnumeros \xC3\xA9 uma das gems que compoem o Brazilian Rails"
|