ผมและพวกเขียน Ruby binding ไว้ที่ http://rubyforge.org/projects/linkgrammar4r/ เขียนด้วย C ทั้งหมดเลย แต่ว่าที่นี้อยากสร้าง layer ขึ้นมาซ้อน แต่อยากเขียนเป็น Ruby ซ้อนไว้อีกที อย่างเช่น ตอนนี้ผมมี
CNode#next
CNode#child
ผมก็อยากจะเขียนอะไรไปซ้อนไว้ให้มันใช้ง่ายๆ แบบ
CNode.each{|node| ... } อะไรแบบนี้ได้ แต่ไม่อยากไปเขียนไว้เป็น ภาษาซีแล้ว ควรจะทำไงดี?
มีท่าเขียน Ruby แยกต่างหาก แล้วแก้ extconf.rb ให้มันลงไปด้วยเปล่า?
กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น
class ของ ruby มัน open เสมอนะ
ดังนั้นถ้าเรา define class ไว้ด้วย C
ก็ยังสามารถมา open class นั้นด้วย ruby ได้
ตัวอย่าง
เราสามารถเพิ่ม method เข้าไปใน class Pok ได้
ทดสอบ run
สิ่งที่น่าสนใจก็คือลำดับ
อย่างข้างล่างนี้ เราลอง load ruby file ก่อน c file
ขอบคุณมากครับ ตอนนี้ท่าที่นึกได้คือ rename cmodule ไปอีกชื่อ เช่นเป็น clinkgrammar.c แล้วค่อย สร้าง linkgrammar.rb มาให้ load clinkgrammar.so อีกที แล้วก็ไปแก้ๆ class
เดี่ยวลองดูดีหว่า :-)