Perintah sakti ini sangat bermanfaat untuk membantu kita bekerja dengan object yang tidak dikenal, seperti object-object yang dihasilkan oleh library yang bertebaran di internet, misalnya Friendly.
obj = Class.new
puts obj.methods
Perintah .methods akan menghasilkan daftar method yang tersedia dalam satu object.
Labels: Ruby
Untuk membulatkan bilangan
x #bilangan yang akan dibulatkan
y #bilangan pembulat :p
pembulat = 1.to_f / y.to_f
hasil = (x * pembulat).round.to_f / pembulat
Untuk membuat pembulatan keatas / kebawah
ganti round dengan ceil atau floor
pembulatan keatas
pembulat = 1.to_f / y.to_f
hasil = (x * pembulat).ceil.to_f / pembulat
pembulatan kebawah
pembulat = 1.to_f / y.to_f
hasil = (x * pembulat).floor.to_f / pembulat
lebih lengkapnya, beginilah isi dari modul yang saya pakai
hasil copy paste dari internet dan edit sana sini
module Utils
def get_float(val)
begin
tmp = Float(val)
return tmp
rescue
return 0.to_f
end
end
def get_integer(val)
begin
tmp = Integer(val)
return tmp
rescue
return 0
end
end
def round_to(x)
(self * 10**x).round.to_f / 10**x
end
def ceil_to(x)
(self * 10**x).ceil.to_f / 10**x
end
def floor_to(x)
(self * 10**x).floor.to_f / 10**x
end
def round_by(number,rounder)
round = 1.to_f / get_float(rounder)
calc = (number.to_f * round).round.to_f / round
return calc
end
def ceil_by(number,rounder)
round = 1.to_f / get_float(rounder)
calc = (number.to_f * round).ceil.to_f / round
return calc
end
def floor_by(number,rounder)
round = 1.to_f / get_float(rounder)
calc = (number.to_f * round).floor.to_f / round
return calc
end
Labels: Ruby
Berikut adalah code snippet ruby yang berguna untuk meringankan beban hidup kita para programmer :)
Mengecek apakah sebuah string berupa bilangan bulat (integer)
num = Integer( variable_yang_dicek ) rescue raise 'error' end
Mengecek apakah sebuah string berupa bilangan pecahan (float)
num = Float( variable_yang_dicek ) rescue raise 'error' end
Mengubah String menjadi Tanggal
time = Time.parse( string_tanggal )
Labels: Ruby
Saya sudah banyak sekali mencicipi yang namanya bahasa programming. Ada Pascal, Foxpro Delphi, VB, VB.NET, PHP, Gambas, Python, Java, Ruby dan lainnya yang saya tidak ingat lagi. Berbagai bahasa program itu saya gunakan untuk keperluan yang berbeda pula. Ada yang sekedar untuk belajar, kuliah, sampai membuat aplikasi serius seperti Point of Sales dan Company Profile. Beberapa diantaranya sudah harus masuk museum, banyak lagi yang terabaikan karena kurang saya sukai sedangkan sedikit dari mereka benar2 masuk kategori bagus menurut saya. Dan diantara semuanya, Ruby benar2 berbeda.
Ruby adalah sebuah bahasa scripting. Mirip seperti PHP, hanya saja Ruby lebih general purpose. Mirip seperti Python, hanya saja Python lebih menyebalkan. Ruby mendukung Pemrograman Berorientasi Obyek dengan sangat baik, dengan syntax yang sangat bersih hingga sulit dipercaya, gaya programming yang fleksibel namun tertata baik, disertai modul2 dasar dengan fungsi2 yang bisa membuat programmer bahasa lain iri. Ruby praktis bisa digunakan untuk apa saja, membuat program CLI (Command line interface), Program Web, maupun Program Desktop. Dengan bantuan modul2 tambahan tentunya.
Untuk CLI, Ruby bisa langsung digunakan. Untuk web, belakangan ini di dunia gempar dengan kehadiran RubyOnRails, sebuah framework yang dapat membuat aplikasi web dalam waktu singkat. Konon janjinya apa yang bisa dikerjakan dengan Java Strut dalam waktu bulanan, dapat dikerjakan di Rails dalam hitungan minggu. Saya sendiri tidak mempelajari Ruby untuk web karena secara de facto PHP adalah penguasa daerah ini (baca : mencari hosting Ruby sulit sekali).
Sedangkan untuk Desktop, Ruby dapat memanfaatkan beberapa GUI Library ternama seperti GTK, QT, dan WxWidget. Hanya saja tidak mudah bagi programmer karena tidak tersedia Visual Editor seperti layaknya VB.NET atau Delphi. Namun saya sendiri menemukan cara untuk membuat program desktop dengan cara yang mudah dan cepat menggunakan Ruby dan WxWidget.
Saat ini saya sendiri sedang membuat program dengan menggunakan Ruby, WxWidget untuk GUI, dan Postgresql untuk database. Saya berharap saya akan punya waktu untuk memposting artikel2 mengenai bahasan ini, sekaligus berjaga2 siapa tahu kalau saya membutuhkannya lagi saya bisa membuka blog ini dan melihatnya :)
Labels: Ruby