CurrencyString 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>currency_languages (CurrencyString)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File ../lib/currencystring.rb, line 40</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">currency_languages</span>
15
+ <span class="ruby-ivar">@@currencystr_config</span>.<span class="ruby-identifier">keys</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,48 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>to_currency_s (CurrencyString)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File ../lib/currencystring.rb, line 44</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_currency_s</span>(<span class="ruby-identifier">lang</span>=<span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-identifier">lang</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;LANG&quot;</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lang</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;LANG&quot;</span>].<span class="ruby-identifier">nil?</span>
16
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value str">&quot;?&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@@currencystr_config</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">lang</span>)
17
+ <span class="ruby-identifier">valors</span> = <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;%.2f&quot;</span>,<span class="ruby-keyword kw">self</span>)
18
+ <span class="ruby-identifier">cents</span> = <span class="ruby-identifier">valors</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\.\d{1,2}/</span>).<span class="ruby-identifier">join</span>
19
+ <span class="ruby-identifier">cents</span> = <span class="ruby-identifier">cents</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">rjust</span>(<span class="ruby-value">3</span>,<span class="ruby-value str">&quot;0&quot;</span>)
20
+ <span class="ruby-identifier">integer</span> = <span class="ruby-identifier">valors</span>.<span class="ruby-identifier">split</span>(<span class="ruby-node">&quot;.#{cents}&quot;</span>).<span class="ruby-identifier">join</span>
21
+ <span class="ruby-identifier">integer</span> = <span class="ruby-identifier">integer</span>.<span class="ruby-identifier">rjust</span>(<span class="ruby-identifier">integer</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">%</span><span class="ruby-value">3</span><span class="ruby-operator">==</span><span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">integer</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">integer</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">+</span><span class="ruby-value">3</span><span class="ruby-operator">-</span>(<span class="ruby-identifier">integer</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">%</span><span class="ruby-value">3</span>),<span class="ruby-value str">&quot;0&quot;</span>)
22
+ <span class="ruby-identifier">valora</span> = <span class="ruby-identifier">integer</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\d{3}/</span>)
23
+ <span class="ruby-identifier">index</span> = <span class="ruby-identifier">valora</span>.<span class="ruby-identifier">size</span>
24
+ <span class="ruby-identifier">str</span> = []
25
+ <span class="ruby-identifier">escalas</span> = <span class="ruby-ivar">@@currencystr_config</span>[<span class="ruby-identifier">lang</span>][<span class="ruby-value str">&quot;scales&quot;</span>]
26
+ <span class="ruby-identifier">separators</span> = <span class="ruby-ivar">@@currencystr_config</span>[<span class="ruby-identifier">lang</span>][<span class="ruby-value str">&quot;separators&quot;</span>]
27
+ <span class="ruby-identifier">currency</span> = <span class="ruby-identifier">integer</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">escalas</span>[<span class="ruby-value">1</span>][<span class="ruby-value">1</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">escalas</span>[<span class="ruby-value">0</span>][<span class="ruby-value">1</span>]
28
+ <span class="ruby-identifier">currency</span>.<span class="ruby-identifier">strip!</span>
29
+
30
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">integer</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
31
+ <span class="ruby-identifier">valora</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">valort</span><span class="ruby-operator">|</span>
32
+ <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">build_value</span>(<span class="ruby-identifier">index</span>,<span class="ruby-identifier">valort</span>,<span class="ruby-identifier">lang</span>)
33
+ <span class="ruby-identifier">index</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
34
+ <span class="ruby-keyword kw">end</span>
35
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">&gt;</span><span class="ruby-value">0</span>}
36
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">join</span>(<span class="ruby-identifier">str</span>,<span class="ruby-identifier">lang</span>,<span class="ruby-identifier">separators</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
37
+ <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">currency</span>
38
+ <span class="ruby-keyword kw">end</span>
39
+
40
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cents</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
41
+ <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">separators</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">strip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">integer</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
42
+ <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">build_value</span>(<span class="ruby-value">0</span>,<span class="ruby-identifier">cents</span>,<span class="ruby-identifier">lang</span>)
43
+ <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">cents</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">escalas</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">escalas</span>[<span class="ruby-value">1</span>][<span class="ruby-value">0</span>]).<span class="ruby-identifier">strip</span>
44
+ <span class="ruby-keyword kw">end</span>
45
+ <span class="ruby-identifier">str</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot; &quot;</span>).<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/ ,/</span>,<span class="ruby-value str">&quot;,&quot;</span>)
46
+ <span class="ruby-keyword kw">end</span></pre>
47
+ </body>
48
+ </html>
@@ -0,0 +1 @@
1
+ Wed, 04 Jul 2007 15:27:17 -0300
@@ -0,0 +1,108 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>File: currencystring.rb</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="fileHeader">
50
+ <h1>currencystring.rb</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>../lib/currencystring.rb
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Wed Jul 04 15:21:43 -0300 2007</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+
72
+ <div id="requires-list">
73
+ <h3 class="section-bar">Required files</h3>
74
+
75
+ <div class="name-list">
76
+ yaml&nbsp;&nbsp;
77
+ </div>
78
+ </div>
79
+
80
+ </div>
81
+
82
+
83
+ </div>
84
+
85
+
86
+ <!-- if includes -->
87
+
88
+ <div id="section">
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+ <!-- if method_list -->
98
+
99
+
100
+ </div>
101
+
102
+
103
+ <div id="validator-badges">
104
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
105
+ </div>
106
+
107
+ </body>
108
+ </html>
@@ -0,0 +1,27 @@
1
+
2
+ <?xml version="1.0" encoding="iso-8859-1"?>
3
+ <!DOCTYPE html
4
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
5
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6
+
7
+ <!--
8
+
9
+ Classes
10
+
11
+ -->
12
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
13
+ <head>
14
+ <title>Classes</title>
15
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
16
+ <link rel="stylesheet" href="rdoc-style.css" type="text/css" />
17
+ <base target="docwin" />
18
+ </head>
19
+ <body>
20
+ <div id="index">
21
+ <h1 class="section-bar">Classes</h1>
22
+ <div id="index-entries">
23
+ <a href="classes/CurrencyString.html">CurrencyString</a><br />
24
+ </div>
25
+ </div>
26
+ </body>
27
+ </html>
@@ -0,0 +1,27 @@
1
+
2
+ <?xml version="1.0" encoding="iso-8859-1"?>
3
+ <!DOCTYPE html
4
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
5
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6
+
7
+ <!--
8
+
9
+ Files
10
+
11
+ -->
12
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
13
+ <head>
14
+ <title>Files</title>
15
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
16
+ <link rel="stylesheet" href="rdoc-style.css" type="text/css" />
17
+ <base target="docwin" />
18
+ </head>
19
+ <body>
20
+ <div id="index">
21
+ <h1 class="section-bar">Files</h1>
22
+ <div id="index-entries">
23
+ <a href="files/__/lib/currencystring_rb.html">../lib/currencystring.rb</a><br />
24
+ </div>
25
+ </div>
26
+ </body>
27
+ </html>
@@ -0,0 +1,31 @@
1
+
2
+ <?xml version="1.0" encoding="iso-8859-1"?>
3
+ <!DOCTYPE html
4
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
5
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6
+
7
+ <!--
8
+
9
+ Methods
10
+
11
+ -->
12
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
13
+ <head>
14
+ <title>Methods</title>
15
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
16
+ <link rel="stylesheet" href="rdoc-style.css" type="text/css" />
17
+ <base target="docwin" />
18
+ </head>
19
+ <body>
20
+ <div id="index">
21
+ <h1 class="section-bar">Methods</h1>
22
+ <div id="index-entries">
23
+ <a href="classes/CurrencyString.html#M000002">build_value (CurrencyString)</a><br />
24
+ <a href="classes/CurrencyString.html#M000004">currency_languages (CurrencyString)</a><br />
25
+ <a href="classes/CurrencyString.html#M000001">included (CurrencyString)</a><br />
26
+ <a href="classes/CurrencyString.html#M000003">join (CurrencyString)</a><br />
27
+ <a href="classes/CurrencyString.html#M000005">to_currency_s (CurrencyString)</a><br />
28
+ </div>
29
+ </div>
30
+ </body>
31
+ </html>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
5
+
6
+ <!--
7
+
8
+ RDoc Documentation
9
+
10
+ -->
11
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
12
+ <head>
13
+ <title>RDoc Documentation</title>
14
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
15
+ </head>
16
+ <frameset rows="20%, 80%">
17
+ <frameset cols="25%,35%,45%">
18
+ <frame src="fr_file_index.html" title="Files" name="Files" />
19
+ <frame src="fr_class_index.html" name="Classes" />
20
+ <frame src="fr_method_index.html" name="Methods" />
21
+ </frameset>
22
+ <frame src="files/__/lib/currencystring_rb.html" name="docwin" />
23
+ </frameset>
24
+ </html>
@@ -0,0 +1,77 @@
1
+ require "yaml"
2
+
3
+ module CurrencyString
4
+ def self.included(other)
5
+ yml = File.dirname(File.expand_path(__FILE__))+File::SEPARATOR+"currencystring.yml"
6
+ @@currencystr_config ||= YAML::load(File.open(yml))
7
+ end
8
+
9
+ def build_value(index,valor,lang)
10
+ escalas = @@currencystr_config[lang]["scales"]
11
+ nums = @@currencystr_config[lang]["numbers"]
12
+ deze = @@currencystr_config[lang]["tenths"]
13
+ cent = @@currencystr_config[lang]["hundreds"]
14
+ seps = @@currencystr_config[lang]["separators"]
15
+ valori = valor.to_i
16
+ str = ""
17
+ escala = index > 1 && valori > 0 ? (valori > 1 ? escalas[1][index] : escalas[0][index]).strip : ""
18
+
19
+ return "#{nums[valor.to_i]} #{escala}".strip if valori < 20
20
+
21
+ numes = valor.scan(/./).map {|item| item.to_i}
22
+ str << cent[valori%100==0?0:1][numes[0]] << (valori%100==0?"":seps[2]) if numes[0] > 0
23
+ str << deze[numes[1]] << (valori%10 ==0?"":seps[1]) if numes[1] > 0
24
+ str << nums[numes[2]].strip
25
+ str << " " << escala if index > 1
26
+ str
27
+ end
28
+
29
+ def join(array,lang,seps)
30
+ index = array.size + 1
31
+ newa = []
32
+ array.each do |item|
33
+ newa << item
34
+ newa << seps[index].strip
35
+ index += 1
36
+ end
37
+ newa[0..-2]
38
+ end
39
+
40
+ def currency_languages
41
+ @@currencystr_config.keys
42
+ end
43
+
44
+ def to_currency_s(lang=nil)
45
+ lang = ENV["LANG"] if lang.nil? && !ENV["LANG"].nil?
46
+ return "?" if !@@currencystr_config.keys.include?(lang)
47
+ valors = sprintf("%.2f",self)
48
+ cents = valors.scan(/\.\d{1,2}/).join
49
+ cents = cents[1..-1].to_s.rjust(3,"0")
50
+ integer = valors.split(".#{cents}").join
51
+ integer = integer.rjust(integer.size%3==0 ? integer.size : integer.size+3-(integer.size%3),"0")
52
+ valora = integer.scan(/\d{3}/)
53
+ index = valora.size
54
+ str = []
55
+ escalas = @@currencystr_config[lang]["scales"]
56
+ separators = @@currencystr_config[lang]["separators"]
57
+ currency = integer.to_i > 1 ? escalas[1][1] : escalas[0][1]
58
+ currency.strip!
59
+
60
+ if integer.to_i > 0
61
+ valora.each do |valort|
62
+ str << build_value(index,valort,lang)
63
+ index -= 1
64
+ end
65
+ str = str.select {|item| item.strip.length>0}
66
+ str = join(str,lang,separators) if str.size > 1
67
+ str << currency
68
+ end
69
+
70
+ if cents.to_i > 0
71
+ str << separators[0].strip if integer.to_i > 0
72
+ str << build_value(0,cents,lang)
73
+ str << (cents.to_i == 1 ? escalas[0][0] : escalas[1][0]).strip
74
+ end
75
+ str.join(" ").strip.gsub(/ ,/,",")
76
+ end
77
+ end
@@ -0,0 +1,158 @@
1
+ pt_BR:
2
+ numbers:
3
+ - " "
4
+ - um
5
+ - dois
6
+ - tr�s
7
+ - quatro
8
+ - cinco
9
+ - seis
10
+ - sete
11
+ - oito
12
+ - nove
13
+ - dez
14
+ - onze
15
+ - doze
16
+ - treze
17
+ - quatorze
18
+ - quinze
19
+ - dezesseis
20
+ - dezessete
21
+ - dezoito
22
+ - dezenove
23
+ tenths:
24
+ -
25
+ - dez
26
+ - vinte
27
+ - trinta
28
+ - quarenta
29
+ - cinquenta
30
+ - sessenta
31
+ - setenta
32
+ - oitenta
33
+ - noventa
34
+ hundreds:
35
+ -
36
+ - nil
37
+ - cem
38
+ - duzentos
39
+ - trezentos
40
+ - quatrocentos
41
+ - quinhentos
42
+ - seiscentos
43
+ - setecentos
44
+ - oitocentos
45
+ - novecentos
46
+ -
47
+ - nil
48
+ - cento
49
+ - duzentos
50
+ - trezentos
51
+ - quatrocentos
52
+ - quinhentos
53
+ - seiscentos
54
+ - setecentos
55
+ - oitocentos
56
+ - novecentos
57
+ scales:
58
+ -
59
+ - centavo
60
+ - real
61
+ - mil
62
+ - milh�o
63
+ - bilh�o
64
+ - trilh�o
65
+ -
66
+ - centavos
67
+ - reais
68
+ - mil
69
+ - milh�es
70
+ - bilh�es
71
+ - trilh�es
72
+ separators:
73
+ - " e "
74
+ - " e "
75
+ - " e "
76
+ - ", "
77
+ - ", "
78
+ - ", "
79
+ - ", "
80
+ en_US:
81
+ numbers:
82
+ - " "
83
+ - one
84
+ - two
85
+ - three
86
+ - four
87
+ - five
88
+ - six
89
+ - seven
90
+ - eight
91
+ - nine
92
+ - ten
93
+ - eleven
94
+ - twelve
95
+ - thirteen
96
+ - fourteen
97
+ - fifthteen
98
+ - sixteen
99
+ - seventeen
100
+ - eighteen
101
+ - nineteen
102
+ tenths:
103
+ -
104
+ - ten
105
+ - twenty
106
+ - thirty
107
+ - fourty
108
+ - fifty
109
+ - sixty
110
+ - seventy
111
+ - eighty
112
+ - ninety
113
+ hundreds:
114
+ -
115
+ - nil
116
+ - one hundred
117
+ - two hundred
118
+ - three hundred
119
+ - four hundred
120
+ - five hundred
121
+ - six hundred
122
+ - seven hundred
123
+ - eight hundred
124
+ - nine hundred
125
+ -
126
+ - nil
127
+ - one hundred
128
+ - two hundred
129
+ - three hundred
130
+ - four hundred
131
+ - five hundred
132
+ - six hundred
133
+ - seven hundred
134
+ - eight hundred
135
+ - nine hundred
136
+ scales:
137
+ -
138
+ - cent
139
+ - dollar
140
+ - thousand
141
+ - million
142
+ - billion
143
+ - trillion
144
+ -
145
+ - cents
146
+ - dollars
147
+ - thousand
148
+ - million
149
+ - billion
150
+ - trillion
151
+ separators:
152
+ - " and "
153
+ - " "
154
+ - " "
155
+ - ", "
156
+ - ", "
157
+ - ", "
158
+ - ", "
@@ -0,0 +1,66 @@
1
+ require "../lib/currencystring"
2
+ require "test/unit"
3
+
4
+ class Numeric
5
+ include CurrencyString
6
+ end
7
+
8
+ class CurrencyTest < Test::Unit::TestCase
9
+ def test_cents
10
+ assert_equal("um centavo" ,0.01.to_currency_s)
11
+ assert_equal("?" ,0.01.to_currency_s("xx_XX"))
12
+ assert_equal("one cent" ,0.01.to_currency_s("en_US"))
13
+ assert_equal("dez centavos",0.10.to_currency_s("pt_BR"))
14
+ assert_equal("ten cents" ,0.10.to_currency_s("en_US"))
15
+ end
16
+ def test_less_than_10
17
+ assert_equal("um real" ,1.00.to_currency_s("pt_BR"))
18
+ assert_equal("one dollar" ,1.00.to_currency_s("en_US"))
19
+ assert_equal("um real e um centavo" ,1.01.to_currency_s("pt_BR"))
20
+ assert_equal("one dollar and one cent" ,1.01.to_currency_s("en_US"))
21
+ assert_equal("um real e dez centavos" ,1.10.to_currency_s("pt_BR"))
22
+ assert_equal("one dollar and ten cents" ,1.10.to_currency_s("en_US"))
23
+ assert_equal("um real e treze centavos" ,1.13.to_currency_s("pt_BR"))
24
+ assert_equal("one dollar and thirteen cents" ,1.13.to_currency_s("en_US"))
25
+ end
26
+ def test_less_than_100
27
+ assert_equal("dez reais e dez centavos" ,10.10.to_currency_s("pt_BR"))
28
+ assert_equal("ten dollars and ten cents" ,10.10.to_currency_s("en_US"))
29
+ assert_equal("quatorze reais e vinte e cinco centavos" ,14.25.to_currency_s("pt_BR"))
30
+ assert_equal("fourteen dollars and twenty five cents" ,14.25.to_currency_s("en_US"))
31
+ assert_equal("trinta reais e dez centavos" ,30.10.to_currency_s("pt_BR"))
32
+ assert_equal("thirty dollars and ten cents" ,30.10.to_currency_s("en_US"))
33
+ end
34
+ def test_hundreds
35
+ assert_equal("cem reais" ,100.00.to_currency_s("pt_BR"))
36
+ assert_equal("one hundred dollars" ,100.00.to_currency_s("en_US"))
37
+ assert_equal("cem reais e dez centavos" ,100.10.to_currency_s("pt_BR"))
38
+ assert_equal("one hundred dollars and ten cents" ,100.10.to_currency_s("en_US"))
39
+ assert_equal("cento e dez reais e dez centavos" ,110.10.to_currency_s("pt_BR"))
40
+ assert_equal("one hundred ten dollars and ten cents" ,110.10.to_currency_s("en_US"))
41
+ assert_equal("cento e vinte e tr�s reais e quarenta e cinco centavos",123.45.to_currency_s("pt_BR"))
42
+ assert_equal("one hundred twenty three dollars and fourty five cents",123.45.to_currency_s("en_US"))
43
+ end
44
+ def test_thousands
45
+ assert_equal("um mil reais" ,1000.00.to_currency_s("pt_BR"))
46
+ assert_equal("one thousand dollars" ,1000.00.to_currency_s("en_US"))
47
+ assert_equal("um mil reais e dez centavos" ,1000.10.to_currency_s("pt_BR"))
48
+ assert_equal("one thousand dollars and ten cents" ,1000.10.to_currency_s("en_US"))
49
+ assert_equal("um mil, duzentos e trinta e quatro reais e cinquenta e seis centavos" ,1234.56.to_currency_s("pt_BR"))
50
+ assert_equal("one thousand, two hundred thirty four dollars and fifty six cents" ,1234.56.to_currency_s("en_US"))
51
+ assert_equal("doze mil, trezentos e quarenta e cinco reais e sessenta e sete centavos" ,12_345.67.to_currency_s("pt_BR"))
52
+ assert_equal("twelve thousand, three hundred fourty five dollars and sixty seven cents",12_345.67.to_currency_s("en_US"))
53
+ assert_equal("cento e vinte e tr�s mil, quatrocentos e cinquenta e seis reais e setenta e oito centavos",123_456.78.to_currency_s("pt_BR"))
54
+ assert_equal("one hundred twenty three thousand, four hundred fifty six dollars and seventy eight cents",123_456.78.to_currency_s("en_US"))
55
+ end
56
+ def test_millions
57
+ assert_equal("um milh�o reais",1_000_000.00.to_currency_s("pt_BR"))
58
+ assert_equal("one million dollars",1_000_000.00.to_currency_s("en_US"))
59
+ assert_equal("um milh�o, dez mil reais e dez centavos",1_010_000.10.to_currency_s("pt_BR"))
60
+ assert_equal("one million, ten thousand dollars and ten cents",1_010_000.10.to_currency_s("en_US"))
61
+ assert_equal("um milh�o, duzentos e trinta e quatro mil, quinhentos e sessenta e sete reais e oitenta e nove centavos",1_234_567.89.to_currency_s("pt_BR"))
62
+ assert_equal("one million, two hundred thirty four thousand, five hundred sixty seven dollars and eighty nine cents",1_234_567.89.to_currency_s("en_US"))
63
+ assert_equal("doze milh�es, trezentos e quarenta e cinco mil, seiscentos e setenta e oito reais e noventa centavos",12_345_678.90.to_currency_s("pt_BR"))
64
+ assert_equal("twelve million, three hundred fourty five thousand, six hundred seventy eight dollars and ninety cents",12_345_678.90.to_currency_s("en_US"))
65
+ end
66
+ end