十年之前
出自我的Blog
http://lightyror.blogspot.com/2006/09/blog-post.html
Ruby on Rails 另一個讓我感到很驚訝的部份
就是他製作 lib 的想法,完全遵照 The Ruby Way
一切以為人為本
當你的程式越接近人的語言
那你程式就越好維護
不了解我的意思嗎?
給個小範例
if Time.now - session[:last_login_time] > 3600
上面這段代表什麼意思,如果上次 login 的時間距離現在的時間只要超過 3600 秒(也就是一小時)就成立
我們可以改成
if Time.now - session[:last_login_time] > 3600.seconds
上面這段什麼意思,跟上面一模一樣
我們還可以改成
if Time.now - session[:last_login_time] > 1.hours
上面這段什麼意思,跟上面一模一樣
最後最後我們還可以改成
Session[:last_login_time] < 1.hours.ago
所以陳奕迅的歌可以改成 10.years.ago
當然還有 1.hours + 2.days 這樣的搞法@@!
本 lib 是 Rails 裡面的 ActiveSupport::CoreExtensions::Numeric::Time
要在Ruby 裡面使用請先宣告
require 'active_support'
然後就可以使用啦
當然啦,沒有 metaprogramming 觀念的語言是搞不出這種玩意的:p
--
lighty RoR 是一個介紹 lighttpd , SQLite , Ruby and Rails 的 Blog
http://lightyror.blogspot.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.218.90.242
※ 編輯: giive 來自: 61.218.90.242 (09/27 16:37)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章