Active Support是一組有Rails提供的庫,Active Support對ruby內建的一些類作了擴展,這次我們來看看其中一些最常用到的功能。
1. 對數字類型的擴展
Fixnum類增加了兩個方法:even?和odd?。
同時增加了縮放的方法:
puts 20.bytes #=> 20
puts 20.kilobytes #=> 20480
puts 20.megabytes #=> 20971520
puts 20.gigabytes #=> 21474836480
puts 20.terabytes #=> 21990232555520
還有基於時間的縮放,將接受的數值轉換為對應的秒,month()和year()方法得到的是近似值,月被假定為有30天,年被假定為365天。
puts 20.minutes #=> 1200
puts 20.hours #=> 72000
puts 20.days #=> 1728000
puts 20.weeks #=> 12096000
puts 20.fortnights #=> 24192000
puts 20.months #=> 51840000
puts 20.years #=> 630720000
2. 時間的擴展
Time類增加了一些方法,來幫助我們進行時間的運算
now = Time.now
puts now
puts now.ago(3600)
puts now.at_beginning_of_day
puts now.at_beginning_of_month
puts now.at_beginning_of_week
puts now.at_beginning_of_year
puts now.at_midnight
puts now.change(:hour => 13)
puts now.last_month
puts now.last_year
puts now.midnight
puts now.monday
puts now.months_ago(2)
puts now.months_since(2)
puts now.next_week
puts now.next_year
puts now.seconds_since_midnight
puts now.since(7200)
puts now.tomorrow
puts now.years_ago(2)
puts now.years_since(2)
puts now.yesterday
另外還提供了Timezone的類,其中包含有時區的名字和偏移量。還提供了時區的列表。詳細請參考Rdoc文檔。
3. string擴展
Rails擴展了string,使得能夠進行單數復數間的轉換,小寫或大小寫混排等等,下面是常用的:
puts "cat".pluralize #=> cats
puts "cats".pluralize #=> cats
puts "erratum".pluralize #=> errata
puts "cats".singularize #=> cat
puts "errata".singularize #=> erratum