Friday, December 16, 2005

การใช้งาน Rails Plugin command

วันนี้เรียนรู้วิธีการใช้งาน Rails Plugin ขึ้นมาอีกหนึ่งอย่าง
คำสั่งแรก ก็คือ

script/plugin discover

คำสั่งนี้ rails จะ scan หา plugins repository site
และ add plugin source ที่พบไว้ใน
file ~/.rails-plugin-sources ของเรา

ตอนแรกที่เห็นคำสั่งนี้ ก็นึกว่าเขาคงมี web service
ที่ให้บริการเรื่อง query เพื่อที่จะสอบถามได้ว่า
มี repositories อะไรที่ลงทะเบียนไว้บ้าง
แต่เปล่าเลย หลังจากเปิดดู source code
ก็พบว่า เขาใช้วิธีง่ายกว่านั้น
กล่าวคือ
ปกติ Rails จะมี page Plugins
ที่ลงรายการ plugin ที่มีคนทำแล้ว พร้อมคำอธิบายสั้นๆ
สิ่งที่คำสั่ง discover ทำ ก็คือ
load page ที่ว่ามา
แล้วก็ใช้ pattern matching หา link ที่มีคำว่า "plugin"

|- class Discover
||+ def initialize(base_command)
||
||+ def options
||
||+ def parse!(args)
||
2- def scrape(uri)
23 require 'open-uri'
23 puts "Scraping #{uri}" if $verbose
23 dupes = []
3- content = open(uri).each do |line|
4- if line =~ /<a[^>]*href=['"]([^'"]*)['"]/
45 uri = $1
5- if uri =~ /\/plugins\// and
uri !~ /\/browser\//
56 uri = extract_repository_uri(uri)
56 yield uri unless dupes.include?(uri) or
Repositories.instance.exist?(uri)
56 dupes << uri
56 end
45 end
34 end
23 end
||
||+ def extract_repository_uri(uri)
|| end


หลังจากได้ listing ของ plugin source มาแล้ว
คราวนี้เราก็สามารถใช้คำสั่ง

script/plugin install PLUGIN_NAME

เพื่อ install plugin ที่เราต้องการ

Note:
ผมชอบใช้วิธี svn export มากกว่าแฮะ

Related link from Roti

No comments: