aka_angka 1.0.0

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/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
+