顯示具有 program 標籤的文章。 顯示所有文章
顯示具有 program 標籤的文章。 顯示所有文章

11/16/2006

HTML Fliter Part(2):yml 化的 sanitize

根據上一篇 HTML Filter ,我們發現到這個 sanitize 很好用。但是,但是,他的 okTags 太醜了,我不喜歡。
def sanitize( html, okTags='a href, b, br, i, p' )
我在想,能不能更加的 Ruby 化一點,所以我就花了點時間改寫一下程式,變成了新版的 sanitize。我們將 allow 的 tag 跟 attribute 寫在 yml 裡面,然後執行時 load 進去,這樣似乎比較結構化一點,並且可以在 Rails 使用。License 是 MIT。

首先,你先寫一個 allow_tags.yml 的 file ,原本 okTags = 'a href target, b, br, p, i' 變成了
a:
- href
- target
b:
br:
p:
i:
a: 代表你接受 a 這個 tag ,後面加上 -href 代表你接受 a tag 底下的 href attribute ,如果你還要加一個 target attribute 就是加一個 -target ,不難懂吧。

如果你在 Ruby on Rails 裡面,建議放在 config 下面。然後,將這段程式(nopaste 版本)放到任何可以 loading 的地方即可。

10/20/2006

計算民國跟學年度的 Plugin

因為有人問我 Rails 有沒有支援民國(當然不可能XD),並且他要寫學校學年度的程式,今天順手就寫一下,這隻程式請放在任何可以 loading 的地方就可以使用了。這年頭習慣再小的程式都要放 License,那我就宣告為 GPL 吧 XD
class Time
# This God damn small Plugin is for Taiwan User
# For ROC Year and Student year
# code by http://lightyror.blogspot.com/

def roc_year
self.year -
1911
end

def student_year
if self.month
< 7
self.roc_year -
1
else
self.roc_year
end
end

end


只要使用這個 Plugin ,你就可以寫出
>> Time.now.roc_year
=> 95
>> Time.now.student_year
=> 95
之類的程式,如果在 Rails 環境下,你可以計算幾年前是那個學年度XD
>> 3.years.ago.student_year
=> 92
很XD的小程式,不過相信對幫學校寫 Project 的人有幫助。

9/23/2006

HTTP 認證程式(不使用 ssl )

本來以為上面那一隻 script 可以偵測公司各個 server 的狀態 :p。但是果然事情沒那麼簡單,有一台我架的 test server 裡面的網頁是開發階段的,需要避免閒雜人等進來了解研發機密,所以我簡單的用 lighttpd 的 mod_auth module 去作 access control。所以我必須寫在裡面加入一般 http auth,這一段是可以認證的 HTTP 程式。
require 'net/http'

url_address = 'http://www.example.com'
url = URI.parse(url_address)
req = Net::HTTP::Get.new(url.path)
req.basic_auth 'user', 'password'
res = Net::HTTP.start(url.host, url.port) { |http| http.request(req) }
puts res.body

user / password 就是放在 req.basic_auth 後面即可。