ด้านล่างเป็นรายการ "ของ" ที่ควรจะติดตั้งมาก่อน ถ้ามีปัญหาติดตั้งตรงไหนไม่ได้ก็ไม่เป็นไร ไว้มาทำตอนเจอก็ได้ แต่ถ้าติดตั้งมาก่อนจะทำให้เร็วมากขึ้น ===== ส่วนการสกัดข้อมูล ===== เครื่องคุณจะต้องติดตั้ง * [[http://www.ruby-lang.org/en/|Ruby]] --- ภาษา Ruby ให้ติดตั้งชุดโปรแกรมอื่น ๆ ที่เกี่ยวข้องด้วย เช่น irb (เป็น command-line interpreter ของ ruby) * ใน Windows ให้ติดตั้งด้วย [[http://rubyinstaller.rubyforge.org/wiki/wiki.pl|One-click Installer]] ให้ติดตั้งตัว ruby gems ที่มากับ installer เลยด้วย * [[http://www.rubygems.org/|Ruby Gems]] --- เป็นชุดสำหรับติดตั้ง library ต่าง ๆ ของ Ruby * ถ้าคุณใช้ Ubuntu ให้ติดตั้งโดยตรง อย่าใช้ apt-get เพราะว่ามันจะมีปัญหาต่อไป เมื่อติดตั้งเสร็จแล้วจะได้โปรแกรม gems ชื่อ gem1.8 * [[http://code.whytheluckystiff.net/hpricot/|Hpricot]] --- สำหรับแกะเอกสาร xml/html ให้ติดตั้งผ่านทาง gem ===== ส่วนการ upload ข้อมูล ===== มีหลายทางเลือก ขึ้นกับว่าจะลุยไปใน database ด้วยอะไร ==== Ruby on Rails ==== ถ้าเราจะลุยไปใน database ของ drupal ด้วย [[http://api.rubyonrails.com/classes/ActiveRecord/Base.html|Active Record]] ซึ่งเป็นส่วนหนึ่งของ [[http://www.rubyonrails.org/|Ruby on Rails]] เพราะฉะนั้น กรุณาติดตั้งโปรแกรมเหล่านี้มาด้วย * [[http://www.rubyonrails.org/|Ruby on Rails]] ติดตั้งผ่านทาง gems โดยสั่ง * ''sudo gem install rails'' * ให้ติดตั้ง driver สำหรับ MySQL บน Ruby มาด้วย * ใน Debian หรือ Ubuntu ให้สั่ง: * ''sudo apt-get install mysql-client libmysql-ruby'' * ใน Windows ให้สั่ง (รอเพิ่มเติม) ==== ตัวอย่างโปรแกรม ==== require 'rubygems' require 'active_record' ActiveRecord::Base.establish_connection(:adapter => "mysql", :host => "158.108.183.10", :username => "drupal", :password => "you-know-it", :database => "drupal", :encoding => 'utf8') class Node < ActiveRecord::Base self.inheritance_column = 'type_id' set_table_name "node" set_primary_key "vid" has_one :profile, :class_name => 'Profile', :foreign_key => 'vid' end class Profile < ActiveRecord::Base set_table_name "content_type_lect_profile" set_primary_key "vid" end nodes = Node.find(:all, :conditions => {:type => "lect_profile"}) nodes.each do |node| puts "#{node.vid} #{node.title}" puts node.profile.field_expertise_value puts node.profile.field_acad_position_value puts "-----------------------------" if node.vid==227 puts "Changing data for #{node.title}" node.profile.field_expertise_value = "Flying" node.profile.save end end