作者giive (lala)
看板Ruby
标题十年之前
时间Wed Sep 27 16:09:51 2006
出自我的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)