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