aka_angka 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/AUTHORS ADDED
@@ -0,0 +1,3 @@
1
+ Arie Kusuma Atmaja A.K.A Arie A.K.A ariekeren
2
+ http://ariekusumaatmaja.wordpress.com
3
+ ariekusumaatmaja (at) gmail (dot) com
data/CHANGES ADDED
File without changes
@@ -0,0 +1,21 @@
1
+ Copyright (c) 2007 {Arie Kusuma Atmaja}[http://ariekusumaatmaja.wordpress.com]
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
data/README ADDED
File without changes
@@ -0,0 +1,73 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'rake/testtask'
4
+ require 'rake/rdoctask'
5
+ require 'rake/packagetask'
6
+ require 'rake/gempackagetask'
7
+ require 'rake/contrib/rubyforgepublisher'
8
+ require File.join(File.dirname(__FILE__), 'lib', 'aka_angka', 'version')
9
+
10
+ PKG_NAME = 'aka_angka'
11
+ PKG_VERSION = AkaAngka::VERSION::STRING
12
+ PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
13
+
14
+ RELEASE_NAME = "REL #{PKG_VERSION}"
15
+
16
+ RUBY_FORGE_PROJECT = "aka_angka"
17
+ RUBY_FORGE_USER = "ariekusuma"
18
+
19
+ PKG_FILES = FileList[
20
+ "Rakefile", "test/*", "lib/*", "lib/**/*", "resources/*"
21
+ ].exclude("rdoc").to_a
22
+
23
+ # Generate the RDoc documentation
24
+
25
+ Rake::RDocTask.new { |rdoc|
26
+ rdoc.rdoc_dir = 'rdoc'
27
+ rdoc.title = "Aka Angka - ArieKeren Angka"
28
+ rdoc.options << '--line-numbers' << '--inline-source' << '-A cattr_accessor=object'
29
+ rdoc.rdoc_files.include('README', 'CHANGES', 'AUTHORS', 'MIT-LICENSE', 'TODO')
30
+ rdoc.rdoc_files.include('lib/**/*.rb')
31
+ rdoc.rdoc_files.include('resources/*')
32
+ }
33
+
34
+ spec = Gem::Specification.new do |s|
35
+ s.name = PKG_NAME
36
+ s.version = PKG_VERSION
37
+ s.author = 'Arie Kusuma Atmaja'
38
+ s.email = 'ariekusumaatmaja@gmail.com'
39
+ s.homepage = 'http://rubyforge.org/projects/aka/'
40
+ s.platform = Gem::Platform::RUBY
41
+ s.summary = <<-EOF
42
+ AkaAngka / aka_angka / ArieKeren Angka adalah Library Ruby Angka untuk format
43
+ Indonesia yang intuitif, independen, bisa digunakan baik dengan Ruby
44
+ murni maupun Rails.
45
+ AkaAngka / aka_angka / ArieKeren Angka is an intuitive Indonesian Number Format,
46
+ independent, could be used well with pure Ruby and also Rails.
47
+ EOF
48
+ s.description = <<-EOF
49
+ AkaAngka / aka_angka / ArieKeren Angka adalah Library Ruby Angka untuk format
50
+ Indonesia yang intuitif, independen, bisa digunakan baik dengan Ruby
51
+ murni maupun Rails.
52
+ AkaAngka / aka_angka / ArieKeren Angka is an intuitive Indonesian Number Format,
53
+ independent, could be used well with pure Ruby and also Rails.
54
+ EOF
55
+ s.files = PKG_FILES
56
+ s.require_path = "lib"
57
+ s.autorequire = "aka_angka.rb"
58
+ s.test_file = "test/aka_angka_test.rb"
59
+ s.has_rdoc = true
60
+ s.extra_rdoc_files = ["AUTHORS", "CHANGES", "MIT-LICENSE", "README", "TODO"]
61
+ s.rdoc_options += [
62
+ '--title', 'AkaAngka',
63
+ '--main', 'README',
64
+ '--line-numbers',
65
+ '--inline-source'
66
+ ]
67
+ end
68
+
69
+ Rake::GemPackageTask.new(spec) do |pkg|
70
+ pkg.need_zip = true
71
+ pkg.need_tar_gz = true
72
+ pkg.need_tar_bz2 = true
73
+ end
data/TODO ADDED
@@ -0,0 +1,6 @@
1
+ Senin, 16 April 2007 13:28:31
2
+ - Dari string angka berubah jadi integer angka
3
+ - wrapper buat nghandle huruf besar/capitalize, upcase, swapcase, downcase otomatis
4
+ - wrapper buat concat rupiah juga musti otomatis
5
+ - RTFM / Dokumentasi library aka_angka ini masih kosong melompong,
6
+ saya akui itu, saya tuliskan nanti ya... Cheers.
@@ -0,0 +1,77 @@
1
+ #--
2
+ # Copyright (c) 2007 ArieKeren <ariekusumaatmaja@gmail.com>
3
+ # http://ariekusumaatmaja.wordpress.com
4
+ #
5
+ # $URL: svn+ssh://ariekusuma@rubyforge.org/var/svn/aka/aka_angka/tags/REL_1_0_0/lib/aka_angka.rb $
6
+ # $Author: ariekusuma $
7
+ # $Date: 2007-04-25 14:04:06 +0700 (Wed, 25 Apr 2007) $
8
+ # $Rev: 24 $
9
+ #++
10
+
11
+ class Integer
12
+
13
+ KECIL = %w(nol satu dua tiga empat lima enam tujuh delapan sembilan).freeze
14
+ BESAR = %w(ribu juta milyar trilyun).unshift('').freeze
15
+
16
+ def to_indonesia
17
+ if self < 10
18
+ KECIL[self]
19
+ elsif self < 20
20
+ ( self % 10 ).belas
21
+ elsif self < 100
22
+ hasil = ( self / 10 ).puluh
23
+ hasil += ' ' + ( self % 10 ).to_id unless ( self % 10 ).zero?
24
+ hasil
25
+ elsif self < 1_000
26
+ if self % 100
27
+ hasil = ( self / 100 ).buatan
28
+ hasil += 'ratus'
29
+ hasil += ' ' + ( self % 100 ).to_id unless ( self % 100 ).zero?
30
+ hasil
31
+ else
32
+ ' ratus ' + ( self % 100 ).to_id #.chomp(' ')
33
+ end
34
+ else
35
+ depan, belakang = case ( self.to_s.length ) % 3
36
+ when 0
37
+ [0..2, 3..-1].map { |e| self.to_s[e] }.map { |e| e.to_i }
38
+ when 2
39
+ [0..1, 2..-1].map { |e| self.to_s[e] }.map { |e| e.to_i }
40
+ when 1
41
+ [0..0, 1..-1].map { |e| self.to_s[e] }.map { |e| e.to_i }
42
+ end
43
+ hasil = depan.buatan + BESAR[(self.to_s.length-1)/3] + ' '
44
+ hasil += belakang.to_id unless belakang.zero?
45
+ hasil.chomp(' ')
46
+ end
47
+ end
48
+ alias :to_id :to_indonesia
49
+ alias :to_indo :to_indonesia
50
+ alias :id :to_indonesia
51
+ alias :indo :to_indonesia
52
+ alias :indonesia :to_indonesia
53
+
54
+ def to_rupiah
55
+ self.id + ' rupiah'
56
+ end
57
+ alias :to_rp :to_rupiah
58
+ alias :rp :to_rupiah
59
+ alias :rupiah :to_rupiah
60
+
61
+ #########
62
+ protected
63
+ #########
64
+
65
+ def belas
66
+ self.zero? ? 'sepuluh' : ( buatan + 'belas' )
67
+ end
68
+
69
+ def puluh
70
+ self.zero? ? 'sepuluh' : ( buatan + 'puluh' )
71
+ end
72
+
73
+ def buatan
74
+ self == 1 ? 'se' : ( to_id + ' ' )
75
+ end
76
+
77
+ end
@@ -0,0 +1,14 @@
1
+ # :title: AkaAngka
2
+
3
+ module AkaAngka
4
+ module Doc #:doc:
5
+ =begin rdoc
6
+
7
+ == SINOPSIS TUTORIAL AkaAngka
8
+
9
+
10
+ =end
11
+ module SYNOPSIS #:doc:
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ module AkaAngka
2
+ module VERSION #:nodoc:
3
+ MAJOR = 1
4
+ MINOR = 0
5
+ TINY = 0
6
+
7
+ STRING = [MAJOR, MINOR, TINY].join('.')
8
+ end
9
+ end
@@ -0,0 +1,180 @@
1
+ #--
2
+ # Copyright (c) 2007 ArieKeren <ariekusumaatmaja@gmail.com>
3
+ # http://ariekusumaatmaja.wordpress.com
4
+ #
5
+ # $URL: svn+ssh://ariekusuma@rubyforge.org/var/svn/aka/aka_angka/tags/REL_1_0_0/test/aka_angka_test.rb $
6
+ # $Author: ariekusuma $
7
+ # $Date: 2007-04-25 14:04:06 +0700 (Wed, 25 Apr 2007) $
8
+ # $Rev: 24 $
9
+ #++
10
+
11
+ require 'test/unit'
12
+ require '../lib/aka_angka'
13
+
14
+ class AkaAngkaTest < Test::Unit::TestCase
15
+
16
+ def test_satuan
17
+ assert_equal(0.to_indo, 'nol')
18
+ assert_equal(1.to_indo, 'satu')
19
+ assert_equal(2.to_id, 'dua')
20
+ assert_equal(3.to_id, 'tiga')
21
+ assert_equal(4.to_indonesia, 'empat')
22
+ assert_equal(5.to_indonesia, 'lima')
23
+ assert_equal(6.to_indo, 'enam')
24
+ assert_equal(7.to_indo, 'tujuh')
25
+ assert_equal(8.to_indo, 'delapan')
26
+ assert_equal(9.to_indo, 'sembilan')
27
+ end
28
+
29
+ def test_sepuluh
30
+ assert_equal(10.to_id, 'sepuluh')
31
+ end
32
+
33
+ def test_belasan
34
+ assert_equal(11.id, 'sebelas')
35
+ assert_not_equal(11.id, 'satu belas')
36
+ assert_equal(12.indo, 'dua belas')
37
+ assert_equal(13.indo, 'tiga belas')
38
+ assert_equal(14.indo, 'empat belas')
39
+ assert_equal(15.indo, 'lima belas')
40
+ assert_equal(16.id, 'enam belas')
41
+ assert_equal(17.id, 'tujuh belas')
42
+ assert_equal(18.id, 'delapan belas')
43
+ assert_equal(19.id, 'sembilan belas')
44
+ end
45
+
46
+ def test_puluhan
47
+ assert_equal(20.id, 'dua puluh')
48
+ assert_equal(21.id, 'dua puluh satu')
49
+ assert_equal(22.id, 'dua puluh dua')
50
+ assert_equal(23.id, 'dua puluh tiga')
51
+ assert_equal(24.id, 'dua puluh empat')
52
+ assert_equal(25.id, 'dua puluh lima')
53
+ assert_equal(26.id, 'dua puluh enam')
54
+ assert_equal(27.id, 'dua puluh tujuh')
55
+ assert_equal(28.id, 'dua puluh delapan')
56
+ assert_equal(29.id, 'dua puluh sembilan')
57
+ assert_equal(30.id, 'tiga puluh')
58
+ assert_equal(31.id, 'tiga puluh satu')
59
+ assert_equal(32.id, 'tiga puluh dua')
60
+ assert_equal(33.id, 'tiga puluh tiga')
61
+ assert_equal(34.id, 'tiga puluh empat')
62
+ assert_equal(35.id, 'tiga puluh lima')
63
+ assert_equal(36.id, 'tiga puluh enam')
64
+ assert_equal(37.id, 'tiga puluh tujuh')
65
+ assert_equal(38.id, 'tiga puluh delapan')
66
+ assert_equal(39.id, 'tiga puluh sembilan')
67
+ assert_equal(40.id, 'empat puluh')
68
+ assert_equal(41.id, 'empat puluh satu')
69
+ assert_equal(42.id, 'empat puluh dua')
70
+ assert_equal(43.id, 'empat puluh tiga')
71
+ assert_equal(44.id, 'empat puluh empat')
72
+ assert_equal(45.id, 'empat puluh lima')
73
+ assert_equal(46.id, 'empat puluh enam')
74
+ assert_equal(47.id, 'empat puluh tujuh')
75
+ assert_equal(48.id, 'empat puluh delapan')
76
+ assert_equal(49.id, 'empat puluh sembilan')
77
+ assert_equal(50.id, 'lima puluh')
78
+ assert_equal(51.id, 'lima puluh satu')
79
+ assert_equal(52.id, 'lima puluh dua')
80
+ assert_equal(53.id, 'lima puluh tiga')
81
+ assert_equal(54.id, 'lima puluh empat')
82
+ assert_equal(55.id, 'lima puluh lima')
83
+ assert_equal(56.id, 'lima puluh enam')
84
+ assert_equal(57.id, 'lima puluh tujuh')
85
+ assert_equal(58.id, 'lima puluh delapan')
86
+ assert_equal(59.id, 'lima puluh sembilan')
87
+ assert_equal(60.id, 'enam puluh')
88
+ assert_equal(61.id, 'enam puluh satu')
89
+ assert_equal(62.id, 'enam puluh dua')
90
+ assert_equal(63.id, 'enam puluh tiga')
91
+ assert_equal(64.id, 'enam puluh empat')
92
+ assert_equal(65.id, 'enam puluh lima')
93
+ assert_equal(66.id, 'enam puluh enam')
94
+ assert_equal(67.id, 'enam puluh tujuh')
95
+ assert_equal(68.id, 'enam puluh delapan')
96
+ assert_equal(69.id, 'enam puluh sembilan')
97
+ assert_equal(70.id, 'tujuh puluh')
98
+ assert_equal(71.id, 'tujuh puluh satu')
99
+ assert_equal(72.id, 'tujuh puluh dua')
100
+ assert_equal(73.id, 'tujuh puluh tiga')
101
+ assert_equal(74.id, 'tujuh puluh empat')
102
+ assert_equal(75.id, 'tujuh puluh lima')
103
+ assert_equal(76.id, 'tujuh puluh enam')
104
+ assert_equal(77.id, 'tujuh puluh tujuh')
105
+ assert_equal(78.id, 'tujuh puluh delapan')
106
+ assert_equal(79.id, 'tujuh puluh sembilan')
107
+ assert_equal(80.id, 'delapan puluh')
108
+ assert_equal(81.id, 'delapan puluh satu')
109
+ assert_equal(82.id, 'delapan puluh dua')
110
+ assert_equal(83.id, 'delapan puluh tiga')
111
+ assert_equal(84.id, 'delapan puluh empat')
112
+ assert_equal(85.id, 'delapan puluh lima')
113
+ assert_equal(86.id, 'delapan puluh enam')
114
+ assert_equal(87.id, 'delapan puluh tujuh')
115
+ assert_equal(88.id, 'delapan puluh delapan')
116
+ assert_equal(89.id, 'delapan puluh sembilan')
117
+ assert_equal(90.id, 'sembilan puluh')
118
+ assert_equal(91.id, 'sembilan puluh satu')
119
+ assert_equal(92.id, 'sembilan puluh dua')
120
+ assert_equal(93.id, 'sembilan puluh tiga')
121
+ assert_equal(94.id, 'sembilan puluh empat')
122
+ assert_equal(95.id, 'sembilan puluh lima')
123
+ assert_equal(96.id, 'sembilan puluh enam')
124
+ assert_equal(97.id, 'sembilan puluh tujuh')
125
+ assert_equal(98.id, 'sembilan puluh delapan')
126
+ assert_equal(99.id, 'sembilan puluh sembilan')
127
+ end
128
+
129
+ def test_ratusan
130
+ assert_equal(100.id, 'seratus')
131
+ assert_equal(101.id, 'seratus satu')
132
+ assert_equal(111.id, 'seratus sebelas')
133
+ assert_equal(113.id, 'seratus tiga belas')
134
+ assert_equal(125.id, 'seratus dua puluh lima')
135
+ assert_equal(250.id, 'dua ratus lima puluh')
136
+ assert_equal(500.id, 'lima ratus')
137
+ assert_equal(666.id, 'enam ratus enam puluh enam')
138
+ assert_equal(999.id, 'sembilan ratus sembilan puluh sembilan')
139
+ end
140
+
141
+ def test_besar_besar
142
+ assert_equal(1_000.id, 'seribu')
143
+ assert_equal(1_001.id, 'seribu satu')
144
+ assert_equal(1_010.id, 'seribu sepuluh')
145
+ assert_equal(1_011.id, 'seribu sebelas')
146
+ assert_equal(1_017.id, 'seribu tujuh belas')
147
+ assert_equal(1_020.id, 'seribu dua puluh')
148
+ assert_equal(1_023.id, 'seribu dua puluh tiga')
149
+ assert_equal(1_100.id, 'seribu seratus')
150
+ assert_equal(1_101.id, 'seribu seratus satu')
151
+ assert_equal(1_111.id, 'seribu seratus sebelas')
152
+ assert_equal(1_115.id, 'seribu seratus lima belas')
153
+ assert_equal(1_250.id, 'seribu dua ratus lima puluh')
154
+ assert_equal(1_500.id, 'seribu lima ratus')
155
+ assert_equal(1_590.id, 'seribu lima ratus sembilan puluh')
156
+ assert_equal(1_759.id, 'seribu tujuh ratus lima puluh sembilan')
157
+ assert_equal(2_014.id, 'dua ribu empat belas')
158
+ # rupiah
159
+ assert_equal(2_500.rp, 'dua ribu lima ratus rupiah')
160
+ assert_equal(5_000.rp, 'lima ribu rupiah')
161
+ assert_equal(10_000.rp, 'sepuluh ribu rupiah')
162
+ assert_equal(15_000.rp, 'lima belas ribu rupiah')
163
+ assert_equal(20_000.rp, 'dua puluh ribu rupiah')
164
+ assert_equal(25_000.rp, 'dua puluh lima ribu rupiah')
165
+ assert_equal(50_000.rp, 'lima puluh ribu rupiah')
166
+ assert_equal(100_000.rp, 'seratus ribu rupiah')
167
+ assert_equal(500_000.rp, 'lima ratus ribu rupiah')
168
+ assert_equal(1_000_000.rp, 'sejuta rupiah')
169
+ assert_equal(10_000_000.rp, 'sepuluh juta rupiah')
170
+ assert_equal(15_000_000.rp, 'lima belas juta rupiah')
171
+ assert_equal(29_000_000.rp, 'dua puluh sembilan juta rupiah')
172
+ assert_equal(50_350_550.rp, 'lima puluh juta tiga ratus lima puluh ribu lima ratus lima puluh rupiah')
173
+ assert_equal(100_000_000.rp, 'seratus juta rupiah')
174
+ assert_equal(150_000_000.rp, 'seratus lima puluh juta rupiah')
175
+ assert_equal(700_000_000.rp, 'tujuh ratus juta rupiah')
176
+ assert_equal(1_000_000_000.rp, 'semilyar rupiah')
177
+ assert_equal(2_000_000_000.rp, 'dua milyar rupiah')
178
+ end
179
+
180
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.2
3
+ specification_version: 1
4
+ name: aka_angka
5
+ version: !ruby/object:Gem::Version
6
+ version: 1.0.0
7
+ date: 2007-04-25 00:00:00 +07:00
8
+ summary: AkaAngka / aka_angka / ArieKeren Angka adalah Library Ruby Angka untuk format Indonesia yang intuitif, independen, bisa digunakan baik dengan Ruby murni maupun Rails. AkaAngka / aka_angka / ArieKeren Angka is an intuitive Indonesian Number Format, independent, could be used well with pure Ruby and also Rails.
9
+ require_paths:
10
+ - lib
11
+ email: ariekusumaatmaja@gmail.com
12
+ homepage: http://rubyforge.org/projects/aka/
13
+ rubyforge_project:
14
+ description: AkaAngka / aka_angka / ArieKeren Angka adalah Library Ruby Angka untuk format Indonesia yang intuitif, independen, bisa digunakan baik dengan Ruby murni maupun Rails. AkaAngka / aka_angka / ArieKeren Angka is an intuitive Indonesian Number Format, independent, could be used well with pure Ruby and also Rails.
15
+ autorequire: aka_angka.rb
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: true
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - Arie Kusuma Atmaja
31
+ files:
32
+ - Rakefile
33
+ - test/aka_angka_test.rb
34
+ - lib/aka_angka
35
+ - lib/aka_angka.rb
36
+ - lib/aka_angka/doc
37
+ - lib/aka_angka/doc/SYNOPSIS.rb
38
+ - lib/aka_angka/version.rb
39
+ - AUTHORS
40
+ - CHANGES
41
+ - MIT-LICENSE
42
+ - README
43
+ - TODO
44
+ test_files:
45
+ - test/aka_angka_test.rb
46
+ rdoc_options:
47
+ - --title
48
+ - AkaAngka
49
+ - --main
50
+ - README
51
+ - --line-numbers
52
+ - --inline-source
53
+ extra_rdoc_files:
54
+ - AUTHORS
55
+ - CHANGES
56
+ - MIT-LICENSE
57
+ - README
58
+ - TODO
59
+ executables: []
60
+
61
+ extensions: []
62
+
63
+ requirements: []
64
+
65
+ dependencies: []
66
+