aka_time 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS +4 -0
- data/CHANGES +3 -0
- data/MIT-LICENSE +21 -0
- data/README +126 -0
- data/Rakefile +57 -0
- data/TODO +6 -0
- data/lib/aka_time.rb +231 -0
- data/lib/aka_time/doc/SYNOPSIS.rb +107 -0
- data/lib/aka_time/version.rb +9 -0
- data/resources/aka_time.jpg +0 -0
- data/test/aka_time_test.rb +166 -0
- metadata +62 -0
data/AUTHORS
ADDED
data/CHANGES
ADDED
data/MIT-LICENSE
ADDED
@@ -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
@@ -0,0 +1,126 @@
|
|
1
|
+
http://www.geocities.com/riyari3/aka_time.jpg
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
= AkaTime - {Arie Kusuma Atmaja}[http://ariekusumaatmaja.wordpress.com/] Time
|
6
|
+
|
7
|
+
Aka, diambil dari Bahasa Jepang, Aka(i), yang artinya "merah". Ya, semerah
|
8
|
+
perhiasan batu {ruby}[http://www.ruby-lang.org]. Aka juga bisa diartikan singkatan dari nama
|
9
|
+
{ArieKeren}[http://ariekusumaatmaja.wordpress.com/]
|
10
|
+
sendiri, yaitu {Arie Kusuma Atmaja}[http://ariekusumaatmaja.wordpress.com/].
|
11
|
+
|
12
|
+
Jadi, kalau bicara *Aka*, berarti di pola pikir kita akan ingat *Merah*,
|
13
|
+
otomatis kita akan ingat *Ruby*, dan kita akan ingat
|
14
|
+
{ArieKeren}[http://ariekusumaatmaja.wordpress.com].
|
15
|
+
|
16
|
+
AkaTime dirilis ke publik karena melihat kebutuhan Republik Ruby Indonesia
|
17
|
+
akan bentuk format waktu sesuai selera yang diinginkan dengan cara yang
|
18
|
+
khas seperti spesialnya filosofi {Ruby}[http://www.ruby-lang.org], yaitu
|
19
|
+
dengan cara yang intuitif, bisa bergerak cepat, produktif, tidak cyptic.
|
20
|
+
|
21
|
+
|
22
|
+
=== Cara membangun dokumentasi AkaTime
|
23
|
+
|
24
|
+
Kita bisa menggunakan tool {rake}[http://rake.rubyforge.org/].
|
25
|
+
Caranya masuklah ke direktori aka_time,
|
26
|
+
lalu ketik :
|
27
|
+
|
28
|
+
rake rdoc <ENTER>
|
29
|
+
|
30
|
+
selanjutnya tinggal membuka file
|
31
|
+
|
32
|
+
rdoc/index.html
|
33
|
+
|
34
|
+
lewat browser
|
35
|
+
|
36
|
+
|
37
|
+
=== Instalasi
|
38
|
+
|
39
|
+
Cara menginstal AkaTime sangatlah mudah, AkaTime sudah tersedia berupa gem,
|
40
|
+
jadi gunakan perintah ini untuk menginstal:
|
41
|
+
|
42
|
+
gem install aka_time
|
43
|
+
|
44
|
+
Supaya download lebih cepat selesai, Anda juga bisa menginstal gem dari
|
45
|
+
mirror di Indonesia, ada di IMT. Caranya:
|
46
|
+
|
47
|
+
gem install aka_time -r -s mirrors.imt.co.id
|
48
|
+
|
49
|
+
Pada saat {ArieKeren}[http://ariekusumaatmaja.wordpress.com/] menulis AkaTime,
|
50
|
+
ada juga usaha untuk membuatkan
|
51
|
+
{DVD/CD dg Ruby offline}[http://rubyoffline.wikidot.com/]
|
52
|
+
agar Republik Ruby Indonesia bisa menikmati rubygem tanpa diharuskan
|
53
|
+
konek ke internet yang dirasa masih sangat sangat mahal bagi kebanyakan
|
54
|
+
orang Indonesia. Kita tunggu saja sumbangsih beliau-beliau yang
|
55
|
+
berkontribusi di
|
56
|
+
{DVD Offline Ruby}[http://rubyoffline.wikidot.com/]
|
57
|
+
tersebut :) Karena kalau nanti sudah ada,
|
58
|
+
maka Anda juga bisa menginstal AkaTime dengan cara sebagai berikut:
|
59
|
+
|
60
|
+
masuk ke direktori DVD Ruby offline tersebut
|
61
|
+
cd /Volumes/DVD-Ruby-Offline/rubygems
|
62
|
+
gem install aka_time -l -s aka_time.gem
|
63
|
+
|
64
|
+
Anda tidak perlu khawatir karena library AkaTime ini tidak bergantung pada
|
65
|
+
library-library rubygem lain sama sekali.
|
66
|
+
|
67
|
+
|
68
|
+
=== Petunjuk Pemakaian AkaTime
|
69
|
+
|
70
|
+
Cara menggunakan AkaTime, juga mudah, yaitu dengan perintah
|
71
|
+
*require* seperti contoh dibawah ini:
|
72
|
+
|
73
|
+
require 'rubygems'
|
74
|
+
require 'aka_time'
|
75
|
+
|
76
|
+
|
77
|
+
=== SINOPSIS TUTORIAL AkaTime
|
78
|
+
|
79
|
+
Baca AkaTime::Doc::SYNOPSIS
|
80
|
+
|
81
|
+
|
82
|
+
=== Daftar Kontak
|
83
|
+
|
84
|
+
Project:: http://rubyforge.org/projects/aka/
|
85
|
+
Documentation:: http://aka.rubyforge.org/
|
86
|
+
Bugs:: http://rubyforge.org/tracker/?group_id=3425
|
87
|
+
Email:: mailto:ariekusumaatmaja@gmail.com
|
88
|
+
Blog ArieKeren:: http://ariekusumaatmaja.wordpress.com
|
89
|
+
Yahoo Messenger:: riyari3
|
90
|
+
|
91
|
+
Pencipta AkaTime bisa dihubungi lewat email di mailto:ariekusumaatmaja@gmail.com
|
92
|
+
Silakan jangan malu-malu kucing untuk melayangkan feedback berupa
|
93
|
+
request ingin berteman (FYI {ArieKeren}[http://ariekusumaatmaja.wordpress.com/]
|
94
|
+
suka banget punya banyak teman),
|
95
|
+
request minta bikinkan library lagi (baik yang open source maupun yang berbayar
|
96
|
+
alias bisnis/proyek-proyek gitu),
|
97
|
+
request minta bikinkan software (baik yang open source maupun yang berbayar),
|
98
|
+
pujian, kritik, saran, hujatan, kebencian ke email
|
99
|
+
{ArieKeren}[http://ariekusumaatmaja.wordpress.com/].
|
100
|
+
Anda justru malah akan disuguhi terima kasih dari
|
101
|
+
{ArieKeren}[http://ariekusumaatmaja.wordpress.com/] karena sudah meluangkan waktu
|
102
|
+
untuk perhatian dan memberi feedback untuk AkaTime ;-)
|
103
|
+
|
104
|
+
Malu Bertanya Sesat ke Google.
|
105
|
+
|
106
|
+
Bila ingin membantu berupa impruvisasi dokumentasi juga boleh banget, silakan
|
107
|
+
saja join jadi Documenter AkaTime dengan tulisan yang gampang dimengerti
|
108
|
+
dengan tujuan Rubyist Indonesia memakai library AkaTime ini dengan intuitif
|
109
|
+
dan sangat gampang.
|
110
|
+
|
111
|
+
Perhatian YM {ArieKeren}[http://ariekusumaatmaja.wordpress.com/] *TIDAK* untuk
|
112
|
+
layanan konsultasi !!! Yahoo Messenger itu buat (social) ngobrol santai aja
|
113
|
+
kalo pas nggak sibuk. Maaf, jadi jangan marah atau tersinggung kalau ada yang
|
114
|
+
nanya lewat YM dicuekin. Kalau mau konsultasi, tentang dunia
|
115
|
+
{Ruby}[http://www.ruby-lang.org], atau dunia
|
116
|
+
{Rails}[http://www.rubyonrails.com], silakan lewat
|
117
|
+
{milis Ruby User Group Indonesia}[http://groups.yahoo.com/groups/id-ruby],
|
118
|
+
di mailto:id-ruby@yahoogroups.com
|
119
|
+
{http://groups.yahoo.com/groups/id-ruby}[http://groups.yahoo.com/groups/id-ruby]
|
120
|
+
|
121
|
+
|
122
|
+
= License
|
123
|
+
|
124
|
+
AkaTime is available under an MIT-style license.
|
125
|
+
|
126
|
+
:include: MIT-LICENSE
|
data/Rakefile
ADDED
@@ -0,0 +1,57 @@
|
|
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_time', 'version')
|
9
|
+
|
10
|
+
PKG_NAME = 'aka_time'
|
11
|
+
PKG_VERSION = AkaTime::VERSION::STRING
|
12
|
+
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
13
|
+
|
14
|
+
RELEASE_NAME = "REL #{PKG_VERSION}"
|
15
|
+
|
16
|
+
RUBY_FORGE_PROJECT = "aka_time"
|
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 Time - ArieKeren Time"
|
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
|
+
# Enhance rdoc task to copy referenced images also
|
35
|
+
task :rdoc do
|
36
|
+
FileUtils.copy "resources/aka_time.jpg", "rdoc/aka_time.jpg"
|
37
|
+
end
|
38
|
+
|
39
|
+
spec = Gem::Specification.new do |s|
|
40
|
+
s.name = PKG_NAME
|
41
|
+
s.version = PKG_VERSION
|
42
|
+
s.author = 'Arie Kusuma Atmaja'
|
43
|
+
s.email = 'ariekusumaatmaja@gmail.com'
|
44
|
+
s.homepage = 'http://aka.rubyforge.org'
|
45
|
+
s.platform = Gem::Platform::RUBY
|
46
|
+
s.summary = 'AkaTime is an intuitive Indonesian Time Format'
|
47
|
+
s.files = PKG_FILES
|
48
|
+
s.require_path = "lib"
|
49
|
+
s.autorequire = "aka_time.rb"
|
50
|
+
s.test_file = "test/aka_time_test.rb"
|
51
|
+
s.has_rdoc = true
|
52
|
+
s.extra_rdoc_files = ["AUTHORS", "CHANGES", "MIT-LICENSE", "README", "TODO"]
|
53
|
+
end
|
54
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
55
|
+
pkg.need_zip = true
|
56
|
+
pkg.need_tar = true
|
57
|
+
end
|
data/TODO
ADDED
@@ -0,0 +1,6 @@
|
|
1
|
+
Minggu, 08 April 2007 17:45:33
|
2
|
+
ArieKeren masih ragu-ragu apakah perlu membuatkan wrapper Time.day juga dibutuhkan
|
3
|
+
metode khusus buat orang Indonesia? karna dari metode tanggal.to_i saja sudah cukup bila ingin
|
4
|
+
mengikut budaya Indonesia yang *sangat* verbose :-/ ArieKeren pribadi lebih suka pakai
|
5
|
+
Time.day saja untuk menghasilkan keluaran yang instance_of?(Fixnum)
|
6
|
+
|
data/lib/aka_time.rb
ADDED
@@ -0,0 +1,231 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2007 ArieKeren <ariekusumaatmaja@gmail.com>
|
3
|
+
# http://ariekusumaatmaja.wordpress.com
|
4
|
+
#
|
5
|
+
# $URL: file:///svn/aka_time/trunk/lib/aka_time.rb $
|
6
|
+
# $Author: arie $
|
7
|
+
# $Date: 2007-04-10 12:53:41 +0700 (Tue, 10 Apr 2007) $
|
8
|
+
# $Rev: 24 $
|
9
|
+
#++
|
10
|
+
|
11
|
+
class Time
|
12
|
+
|
13
|
+
=begin rdoc
|
14
|
+
Nama-nama bulan dalam Bahasa Indonesia
|
15
|
+
---
|
16
|
+
Months in Indonesian Language
|
17
|
+
=end
|
18
|
+
BULAN = %w(Januari Februari Maret April Mei Juni
|
19
|
+
Juli Agustus September Oktober November Desember
|
20
|
+
).unshift(nil).freeze
|
21
|
+
|
22
|
+
=begin rdoc
|
23
|
+
Nama-nama hari dalam Bahasa Indonesia
|
24
|
+
---
|
25
|
+
Days in Indonesian Language
|
26
|
+
=end
|
27
|
+
HARI = %w(Senin Selasa Rabu Kamis Jumat Sabtu).unshift("Minggu").freeze
|
28
|
+
|
29
|
+
# second, alias Time.strftime("%S")
|
30
|
+
def detik
|
31
|
+
self.strftime("%S")
|
32
|
+
end
|
33
|
+
|
34
|
+
# minute, alias Time.strftime("%M")
|
35
|
+
def menit
|
36
|
+
self.strftime("%M")
|
37
|
+
end
|
38
|
+
|
39
|
+
# hour, alias Time.strftime("%H")
|
40
|
+
def jam
|
41
|
+
self.strftime("%H")
|
42
|
+
end
|
43
|
+
|
44
|
+
=begin rdoc
|
45
|
+
tahun bila ditulis komplit (tidak disingkat) maka keluaran tahun
|
46
|
+
berupa 4 digit (termasuk abad). Misalkan: 1993. Berarti tahun 1993.
|
47
|
+
alias dari Time.strftime("%Y")
|
48
|
+
---
|
49
|
+
If you write tahun completely it returns year with century.
|
50
|
+
Ex: 1993. Means Year 1993. Alias from Time.strftime("%Y")
|
51
|
+
=end
|
52
|
+
def tahun
|
53
|
+
self.strftime("%Y")
|
54
|
+
end
|
55
|
+
|
56
|
+
=begin rdoc
|
57
|
+
tahun bila ditulis dengan singkat maka keluaran thn berupa
|
58
|
+
2 digit (tidak termasuk abad). Misalkan: 93. Berarti tahun 1993.
|
59
|
+
alias dari Time.strftime("%y")
|
60
|
+
---
|
61
|
+
If you write thn as an abbreviation of tahun, it returns year without
|
62
|
+
century. Ex. 93. Means Year 1993. Alias from Time.strftime("%Y")
|
63
|
+
=end
|
64
|
+
def thn
|
65
|
+
self.strftime("%y")
|
66
|
+
end
|
67
|
+
|
68
|
+
=begin rdoc
|
69
|
+
bulan bila ditulis komplit (tidak disingkat) maka keluaran
|
70
|
+
bulan juga berupa nama bulan yang komplit / tidak disingkat yang diambil
|
71
|
+
dari konstanta array BULAN. Misalkan: *Januari*. Berarti bulan Januari.
|
72
|
+
---
|
73
|
+
If you write bulan completely, it returns name of the month in Bahasa
|
74
|
+
Indonesia. Ex: *Januari*, means January.
|
75
|
+
=end
|
76
|
+
def bulan
|
77
|
+
BULAN[self.strftime("%m").to_i]
|
78
|
+
end
|
79
|
+
|
80
|
+
=begin rdoc
|
81
|
+
bulan bila ditulis dengan singkat, yakni bln, maka keluaran
|
82
|
+
bln juga berupa nama bulan yang disingkat, yaitu hanya 3 huruf pertama saja
|
83
|
+
dari bulan. Misalkan: *Jan*. Berarti bulan Januari.
|
84
|
+
---
|
85
|
+
If you write bln as an abbreviation of bulan, it returns the first 3 characters
|
86
|
+
of name of the month in Bahasa Indonesia. Ex: *Jan*, means January.
|
87
|
+
=end
|
88
|
+
def bln
|
89
|
+
bulan.split(//)[0..2].join
|
90
|
+
end
|
91
|
+
|
92
|
+
=begin rdoc
|
93
|
+
alias dari Time.strftime("%d"). Misalkan: 18. Berarti tanggal 18.
|
94
|
+
---
|
95
|
+
alias from Time.strftime("%d"). Ex: 18, means date 18.
|
96
|
+
=end
|
97
|
+
def tanggal
|
98
|
+
self.strftime("%d")
|
99
|
+
end
|
100
|
+
alias :tgl :tanggal
|
101
|
+
|
102
|
+
=begin rdoc
|
103
|
+
alias dari Time.strftime("%w") Indonesia, yang diambil dari konstanta array
|
104
|
+
HARI, misalkan *Senin*, berarti hari Senin
|
105
|
+
---
|
106
|
+
alias from Time.strftime("%w") Indonesia, got from HARI constant,
|
107
|
+
ex: *Senin*, means Monday
|
108
|
+
=end
|
109
|
+
def hari
|
110
|
+
HARI[self.strftime("%w").to_i]
|
111
|
+
end
|
112
|
+
|
113
|
+
=begin rdoc
|
114
|
+
hari bila ditulis dengan singkat, maka keluaran hanya berupa 3 huruf pertama
|
115
|
+
saja dari konstanta array HARI. Misalkan *Sen*, berarti hari Senin
|
116
|
+
---
|
117
|
+
If you write hr as an abbreviation of hari, it returns the first 3 characters
|
118
|
+
of the name of the day. Ex: *Sen*, means Monday, alias of Time.strftime("%a")
|
119
|
+
but in Bahasa Indonesia.
|
120
|
+
=end
|
121
|
+
def hr
|
122
|
+
hari.split(//)[0..2].join
|
123
|
+
end
|
124
|
+
|
125
|
+
=begin rdoc
|
126
|
+
HH:MM:SS, misalkan saja: 12:20:30. Berarti Jam 12, Menit 20, Detik 30.
|
127
|
+
Penggunaan metode jam_menit_detik ini mungkin terasa sangat verbose, tetapi
|
128
|
+
sangat intuitif untuk orang Indonesia.
|
129
|
+
---
|
130
|
+
alias of Time.strftime("%X")
|
131
|
+
=end
|
132
|
+
def jam_menit_detik
|
133
|
+
self.strftime("%X")
|
134
|
+
end
|
135
|
+
|
136
|
+
=begin rdoc
|
137
|
+
Tanggal Bulan Tahun, misalkan: 18 Desember 1981.
|
138
|
+
---
|
139
|
+
Date Month Year, ex: 18 Desember 1981, it means 18 December 1981.
|
140
|
+
=end
|
141
|
+
def tanggal_bulan_tahun
|
142
|
+
[tanggal, bulan, tahun].join(' ')
|
143
|
+
end
|
144
|
+
alias :tgl_bulan_tahun :tanggal_bulan_tahun
|
145
|
+
|
146
|
+
=begin rdoc
|
147
|
+
Tanggal Bln Tahun, misalkan: 18 Des 1981. Bulan saja yang disingkat.
|
148
|
+
---
|
149
|
+
Date Month Year, ex: 18 Des 1981, it means 18 Dec 1981. Month is the only
|
150
|
+
one being abbreviated.
|
151
|
+
=end
|
152
|
+
def tanggal_bln_tahun
|
153
|
+
[tanggal, bln, tahun].join(' ')
|
154
|
+
end
|
155
|
+
alias :tgl_bln_tahun :tanggal_bln_tahun
|
156
|
+
|
157
|
+
=begin rdoc
|
158
|
+
Tanggal Bln Thn, misalkan: 18 Des 81. Bisa kita perhatikan dan ini sebetulnya
|
159
|
+
intuitif saja, tahun juga disingkat, selain bulan juga disingkat. Makanya
|
160
|
+
thn keluarannya 2 digit dan bln keluaran 3 huruf pertama dari bulan
|
161
|
+
---
|
162
|
+
Date Month Year, ex: 18 Des 81, it means 18 Dec 81. Month and Year are being
|
163
|
+
abbreviated both.
|
164
|
+
=end
|
165
|
+
def tanggal_bln_thn
|
166
|
+
[tanggal, bln, thn].join(' ')
|
167
|
+
end
|
168
|
+
alias :tgl_bln_thn :tanggal_bln_thn
|
169
|
+
|
170
|
+
=begin rdoc
|
171
|
+
Tanggal Bulan Thn, misalkan: 18 Desember 81. Tahun saja yang disingkat.
|
172
|
+
---
|
173
|
+
Date Month Year, ex: 18 Desember 81. Year is the only one being abbreviated.
|
174
|
+
=end
|
175
|
+
def tanggal_bulan_thn
|
176
|
+
[tanggal, bulan, thn].join(' ')
|
177
|
+
end
|
178
|
+
alias :tgl_bulan_thn :tanggal_bulan_thn
|
179
|
+
|
180
|
+
=begin rdoc
|
181
|
+
metode indo inilah yang paling sering dipakai, jadi tidak perlu lagi bila ada
|
182
|
+
objek Time menyebutkannya dengan cara "cryptic" seperti :
|
183
|
+
Time.now.strftime("%A, %d %B %Y %X")
|
184
|
+
ataupun begini (contoh bila pemakaian dikombinasikan dengan ORM
|
185
|
+
{ActiveRecord}[http://rubyforge.org/projects/activerecord])
|
186
|
+
@objek_tabel.created_at.strftime("%A, %d %B %Y %X")
|
187
|
+
yang hasilnya adalah dalam bahasa Inggris, lalu diterjemahkan lagi ke
|
188
|
+
bahasa Indonesia, karena sekarang cukup dengan ini saja :
|
189
|
+
Time.now.indo
|
190
|
+
ataupun
|
191
|
+
@objek_tabel.created_at.indo
|
192
|
+
Cara normal yang verbose atau standar untuk mengungkapkan waktu secara lengkap
|
193
|
+
menggunakan metode tanggalan_waktu, misalkan: Minggu, 08 April 2007 17:45:33.
|
194
|
+
Cara yang sangat intuitif di lapangan lihat alias dari metode ini,
|
195
|
+
yaitu tanggalan_waktu
|
196
|
+
---
|
197
|
+
This indo method is very often used, so we don't have to "verbosely" say Time
|
198
|
+
object in "a cryptic way" like this:
|
199
|
+
Time.now.strftime("%A, %d %B %Y %X")
|
200
|
+
or like this (combined with
|
201
|
+
{ActiveRecord}[http://rubyforge.org/projects/activerecord]
|
202
|
+
ORM)
|
203
|
+
@object.created_at.strftime("%A, %d %B %Y %X")
|
204
|
+
which return a well formatted Time in English, then we have to translate it
|
205
|
+
again in Bahasa Indonesia. Now you can simply use this:
|
206
|
+
Time.now.indo
|
207
|
+
or
|
208
|
+
@object.created_at.indo
|
209
|
+
A verbose way to express a complete day, look at its alias method
|
210
|
+
tanggalan_waktu, date month year including HH:MM:SS.
|
211
|
+
=end
|
212
|
+
def indo
|
213
|
+
["#{hari},", tanggal_bulan_tahun, jam_menit_detik].join(' ')
|
214
|
+
end
|
215
|
+
alias :tanggalan_waktu :indo
|
216
|
+
alias :id :indo
|
217
|
+
alias :indonesia :indo
|
218
|
+
|
219
|
+
=begin rdoc
|
220
|
+
metode ini menampilkan tgl/bln/thn, atau kebalikan dari versi
|
221
|
+
Time.strftime("%x") yang aslinya berformat Bahasa Inggris yaitu bln/tgl/thn.
|
222
|
+
Keluaran misalkan: 12/4/82. Berarti tanggal 12, bulan 4, tahun 1982.
|
223
|
+
---
|
224
|
+
this x method returns tgl/bln/thn, or the reverse version of the English
|
225
|
+
format Time.strftime("%x"). Ex: 12/4/82. It means date 12, month 4, year 1981.
|
226
|
+
=end
|
227
|
+
def x
|
228
|
+
self.strftime("%x").gsub!(/^(\d{2})\/(\d{2})\/(\d{2})$/, '\2/\1/\3')
|
229
|
+
end
|
230
|
+
|
231
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
# :title: AkaTime
|
2
|
+
|
3
|
+
module AkaTime
|
4
|
+
module Doc #:doc:
|
5
|
+
=begin rdoc
|
6
|
+
|
7
|
+
== SINOPSIS TUTORIAL AkaTime
|
8
|
+
|
9
|
+
sayang:~ arie$ irb
|
10
|
+
Arigatou jyanai! Pizza wa (2) ni-mai, OK!
|
11
|
+
Tak perlu kau ucap terima kasih! Pizza 2 boleh juga, OK!
|
12
|
+
irb(main):001:0> require 'rubygems'
|
13
|
+
=> true
|
14
|
+
irb(main):002:0> require 'aka_time'
|
15
|
+
=> true
|
16
|
+
irb(main):004:0> waktu = Time.mktime(2007, 4, 8, 14, 8, 45)
|
17
|
+
=> Sun Apr 08 14:08:45 +0700 2007
|
18
|
+
irb(main):005:0> waktu.indo
|
19
|
+
=> "Minggu, 08 April 2007 14:08:45"
|
20
|
+
irb(main):006:0> waktu.hari
|
21
|
+
=> "Minggu"
|
22
|
+
irb(main):007:0> waktu.tanggal
|
23
|
+
=> "08"
|
24
|
+
irb(main):008:0> waktu.bulan
|
25
|
+
=> "April"
|
26
|
+
irb(main):009:0> waktu.bln
|
27
|
+
=> "Apr"
|
28
|
+
irb(main):010:0> waktu.tahun
|
29
|
+
=> "2007"
|
30
|
+
irb(main):011:0> waktu.thn
|
31
|
+
=> "07"
|
32
|
+
irb(main):012:0> waktu.hari
|
33
|
+
=> "Minggu"
|
34
|
+
irb(main):013:0> waktu.hr
|
35
|
+
=> "Min"
|
36
|
+
irb(main):014:0>
|
37
|
+
|
38
|
+
Cara pemakaian di {Rails}[http://www.rubyonrails.com] juga sangat sederhana,
|
39
|
+
misalkan kita punya Model artikel.rb, yang mana
|
40
|
+
kelas Artikel punya field-field sebagai berikut:
|
41
|
+
|
42
|
+
* id
|
43
|
+
* judul
|
44
|
+
* isi
|
45
|
+
* created_at
|
46
|
+
|
47
|
+
Nah, maka tatkala melakukan query select atau yang biasa dilakukan oleh Railers dengan
|
48
|
+
menggunakan ActiveRecord find.
|
49
|
+
|
50
|
+
Jadi, misalkan, caranya begini:
|
51
|
+
|
52
|
+
kita juga punya controller, namanya demo_controller.rb, dalam file demo_controller.rb,
|
53
|
+
kita punya metode show, sebagai berikut:
|
54
|
+
|
55
|
+
def show
|
56
|
+
@artikel = Artikel.find(params[:id])
|
57
|
+
rescue ActiveRecord::RecordNotFound => e
|
58
|
+
redirect_to_index("Artikel tidak ditemukan #{e.message}")
|
59
|
+
end
|
60
|
+
|
61
|
+
di template view nya, kita tinggal menambahkan sebagai berikut:
|
62
|
+
|
63
|
+
<p>
|
64
|
+
Judul: <h1><%= h @artikel.judul %></h1>
|
65
|
+
</p>
|
66
|
+
<p>
|
67
|
+
Isi: <%= h @artikel.isi %>
|
68
|
+
</p>
|
69
|
+
<p>
|
70
|
+
Dibuat kapan?: <%= @artikel.created_at.indo %>
|
71
|
+
</p>
|
72
|
+
|
73
|
+
== PUISI / LAGU AkaTime
|
74
|
+
|
75
|
+
AkaTaaaaim...
|
76
|
+
Ada Aka, Ada Merah...
|
77
|
+
Kalau Merah, berarti Ruby...
|
78
|
+
|
79
|
+
AkaTaaaaim...
|
80
|
+
Inget Aka, Inget ArieKeren...
|
81
|
+
Kalau Aka, berarti Arie...
|
82
|
+
|
83
|
+
Silaaau...
|
84
|
+
Ada Merah, Ada Aka, Ada ArieKeren...
|
85
|
+
Hey! Indonesia Merah!
|
86
|
+
Merah Indonesia Lambang Berani...
|
87
|
+
Merah Ruby Indonesia Lambang Elegan...
|
88
|
+
|
89
|
+
---
|
90
|
+
|
91
|
+
ya, dipersilakan buat yang biasa main gitar, main piano/organ, main angklung,
|
92
|
+
kalau ada yang mau menyanyikan dan merekam untuk disebar-sebarkan, dipersilakan
|
93
|
+
dengan senang hati :-) AkaTime ...
|
94
|
+
Waktunya {Aka}[http://rubyforge.org/projects/aka/] ...
|
95
|
+
|
96
|
+
= AkaTime - {Arie Kusuma Atmaja}[http://ariekusumaatmaja.wordpress.com/] Time
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
http://www.geocities.com/riyari3/aka_time.jpg
|
102
|
+
|
103
|
+
=end
|
104
|
+
module SYNOPSIS #:doc:
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
Binary file
|
@@ -0,0 +1,166 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2007 ArieKeren <ariekusumaatmaja@gmail.com>
|
3
|
+
# http://ariekusumaatmaja.wordpress.com
|
4
|
+
#
|
5
|
+
# $URL: file:///svn/aka_time/trunk/test/aka_time_test.rb $
|
6
|
+
# $Author: arie $
|
7
|
+
# $Date: 2007-04-10 12:53:41 +0700 (Tue, 10 Apr 2007) $
|
8
|
+
# $Rev: 24 $
|
9
|
+
#++
|
10
|
+
|
11
|
+
require 'test/unit'
|
12
|
+
require '../lib/aka_time'
|
13
|
+
|
14
|
+
class AkaTimeTest < Test::Unit::TestCase
|
15
|
+
|
16
|
+
def setup
|
17
|
+
@time = Time.mktime(1981, 5, 18, 22, 15, 30)
|
18
|
+
@time2 = Time.mktime(1981, 12, 18, 2, 43, 51)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Time.strftime("%S") Indonesia
|
22
|
+
def test_detik
|
23
|
+
assert_equal('30', @time.detik)
|
24
|
+
assert_equal('51', @time2.detik)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Time.strftime("%M") Indonesia
|
28
|
+
def test_menit
|
29
|
+
assert_equal('15', @time.menit)
|
30
|
+
assert_equal('43', @time2.menit)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Time.strftime("%H") Indonesia
|
34
|
+
def test_jam
|
35
|
+
assert_equal('22', @time.jam)
|
36
|
+
assert_equal('02', @time2.jam)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Time.strftime("%Y") Indonesia, alias year, 4 digit
|
40
|
+
def test_tahun
|
41
|
+
assert_equal('1981', @time.tahun)
|
42
|
+
assert_equal('1981', @time2.tahun)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Time.strftime("%y") Indonesia, 2 digit / tidak pakai abad / ribuan.
|
46
|
+
def test_thn
|
47
|
+
assert_equal('81', @time.thn)
|
48
|
+
assert_equal('81', @time2.thn)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Time.strftime("%B") Indonesia
|
52
|
+
def test_bulan
|
53
|
+
assert_equal('Mei', @time.bulan)
|
54
|
+
assert_equal('Desember', @time2.bulan)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Time.strftime("%b") Indonesia
|
58
|
+
def test_bln
|
59
|
+
assert_equal('Mei', @time.bln)
|
60
|
+
assert_equal('Des', @time2.bln)
|
61
|
+
end
|
62
|
+
|
63
|
+
# Time.strftime("%d") Indonesia
|
64
|
+
def test_tanggal
|
65
|
+
assert_equal('18', @time.tanggal)
|
66
|
+
end
|
67
|
+
|
68
|
+
# alias tanggal
|
69
|
+
def test_tgl
|
70
|
+
assert_equal('18', @time.tgl)
|
71
|
+
end
|
72
|
+
|
73
|
+
# wday Indonesia
|
74
|
+
def test_hari
|
75
|
+
assert_equal('Senin', @time.hari)
|
76
|
+
assert_equal('Jumat', @time2.hari)
|
77
|
+
end
|
78
|
+
|
79
|
+
def test_hr
|
80
|
+
assert_equal('Sen', @time.hr)
|
81
|
+
assert_equal('Jum', @time2.hr)
|
82
|
+
end
|
83
|
+
|
84
|
+
# Time.strftime("%X")
|
85
|
+
def test_jam_menit_detik
|
86
|
+
assert_equal(@time.strftime("%X"), @time.jam_menit_detik)
|
87
|
+
assert_equal('22,15,30'.gsub(/,/, ':'), @time.jam_menit_detik)
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_tanggal_bulan_tahun
|
91
|
+
assert_equal('18 Mei 1981', @time.tanggal_bulan_tahun)
|
92
|
+
assert_equal('18 Desember 1981', @time2.tanggal_bulan_tahun)
|
93
|
+
end
|
94
|
+
|
95
|
+
# alias tanggal_bulan_tahun
|
96
|
+
def test_tgl_bulan_tahun
|
97
|
+
assert_equal('18 Mei 1981', @time.tgl_bulan_tahun)
|
98
|
+
assert_equal('18 Desember 1981', @time2.tgl_bulan_tahun)
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_tanggal_bln_tahun
|
102
|
+
assert_equal('18 Mei 1981', @time.tanggal_bln_tahun)
|
103
|
+
assert_equal('18 Des 1981', @time2.tanggal_bln_tahun)
|
104
|
+
end
|
105
|
+
|
106
|
+
# alias tanggal_bln_tahun
|
107
|
+
def test_tgl_bln_tahun
|
108
|
+
assert_equal('18 Mei 1981', @time.tgl_bln_tahun)
|
109
|
+
assert_equal('18 Des 1981', @time2.tgl_bln_tahun)
|
110
|
+
end
|
111
|
+
|
112
|
+
def test_tanggal_bulan_thn
|
113
|
+
assert_equal('18 Mei 81', @time.tanggal_bulan_thn)
|
114
|
+
assert_equal('18 Desember 81', @time2.tanggal_bulan_thn)
|
115
|
+
end
|
116
|
+
|
117
|
+
# alias tanggal_bulan_thn
|
118
|
+
def test_tgl_bulan_thn
|
119
|
+
assert_equal('18 Mei 81', @time.tgl_bulan_thn)
|
120
|
+
assert_equal('18 Desember 81', @time2.tgl_bulan_thn)
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_tanggal_bln_thn
|
124
|
+
assert_equal('18 Mei 81', @time.tanggal_bln_thn)
|
125
|
+
assert_equal('18 Des 81', @time2.tanggal_bln_thn)
|
126
|
+
end
|
127
|
+
|
128
|
+
# alias tanggal_bln_thn
|
129
|
+
def test_tgl_bln_thn
|
130
|
+
assert_equal('18 Mei 81', @time.tgl_bln_thn)
|
131
|
+
assert_equal('18 Des 81', @time2.tgl_bln_thn)
|
132
|
+
end
|
133
|
+
|
134
|
+
def test_indo
|
135
|
+
assert_equal('Senin, 18 Mei 1981 22:15:30', @time.indo)
|
136
|
+
assert_equal("Jumat, 18 Desember 1981 02:43:51", @time2.indo)
|
137
|
+
end
|
138
|
+
|
139
|
+
# alias indo
|
140
|
+
def test_tanggalan_waktu
|
141
|
+
assert_equal('Senin, 18 Mei 1981 22:15:30', @time.tanggalan_waktu)
|
142
|
+
assert_equal("Jumat, 18 Desember 1981 02:43:51", @time2.tanggalan_waktu)
|
143
|
+
end
|
144
|
+
|
145
|
+
# alias indo
|
146
|
+
def test_indonesia
|
147
|
+
assert_equal('Senin, 18 Mei 1981 22:15:30', @time.indonesia)
|
148
|
+
assert_equal("Jumat, 18 Desember 1981 02:43:51", @time2.indonesia)
|
149
|
+
end
|
150
|
+
|
151
|
+
# alias indo
|
152
|
+
def test_id
|
153
|
+
assert_equal('Senin, 18 Mei 1981 22:15:30', @time.id)
|
154
|
+
assert_equal("Jumat, 18 Desember 1981 02:43:51", @time2.id)
|
155
|
+
end
|
156
|
+
|
157
|
+
# %x Indonesia
|
158
|
+
def test_x
|
159
|
+
assert_equal('18/05/81', @time.x)
|
160
|
+
assert_equal('18/12/81', @time2.x)
|
161
|
+
# versi %x asli
|
162
|
+
assert_equal('05/18/81', @time.strftime("%x"))
|
163
|
+
assert_equal('12/18/81', @time2.strftime("%x"))
|
164
|
+
end
|
165
|
+
|
166
|
+
end
|
metadata
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.9.0
|
3
|
+
specification_version: 1
|
4
|
+
name: aka_time
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 1.0.0
|
7
|
+
date: 2007-04-10 00:00:00 +07:00
|
8
|
+
summary: AkaTime is an intuitive Indonesian Time Format
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: ariekusumaatmaja@gmail.com
|
12
|
+
homepage: http://aka.rubyforge.org
|
13
|
+
rubyforge_project:
|
14
|
+
description:
|
15
|
+
autorequire: aka_time.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_time_test.rb
|
34
|
+
- lib/aka_time
|
35
|
+
- lib/aka_time.rb
|
36
|
+
- lib/aka_time/doc
|
37
|
+
- lib/aka_time/doc/SYNOPSIS.rb
|
38
|
+
- lib/aka_time/version.rb
|
39
|
+
- resources/aka_time.jpg
|
40
|
+
- AUTHORS
|
41
|
+
- CHANGES
|
42
|
+
- MIT-LICENSE
|
43
|
+
- README
|
44
|
+
- TODO
|
45
|
+
test_files:
|
46
|
+
- test/aka_time_test.rb
|
47
|
+
rdoc_options: []
|
48
|
+
|
49
|
+
extra_rdoc_files:
|
50
|
+
- AUTHORS
|
51
|
+
- CHANGES
|
52
|
+
- MIT-LICENSE
|
53
|
+
- README
|
54
|
+
- TODO
|
55
|
+
executables: []
|
56
|
+
|
57
|
+
extensions: []
|
58
|
+
|
59
|
+
requirements: []
|
60
|
+
|
61
|
+
dependencies: []
|
62
|
+
|