Ruby's Main Object
Ruby ถูกออกแบบขึ้นมาภายใต้หลักการของ Object นั้นทำให้ทุกสิ่งทุกอย่างที่อยู่ภายใต้การทำงาน Ruby ล้วนเป็น Object ทั้งหมด โดย Object ที่เป็น Top Level จะเรียกว่า Main Object ซึ่งเมธอดที่ถูกนิยามภายใต้ Main Object สามารถที่จะถูกเรียกจากที่ไหนก็ได้ ยกตัวอย่างเช่นการที่เราเรียกใช้เมธอด puts
, respond_to?
หรือ is_a?
ได้ทุกๆ ที่
จริงๆ แล้ว Main Object จะถูกสร้างเป็น instance หนึงขึ้นมาเมื่อโปรแกรมรันหรือเปิด IRB
Main Object ใน IRB
เราสามารถนิยามเมธอดที่สามารถเรียกใช้งานได้จากทุกๆ ที่ได้ง่ายๆ เพียงแค่นิยามเมธอดไว้ด้านนอกคลาส หรือโมดูลเท่านั้น Ruby จะก็จะผูกเมธอดนั้นๆ เข้ากับ Main Object ให้เราโดยอัตโนมัติ
ลองนิยามเมธอด show_message
มาทดสอบกัน
show_message in irb
สิ่งหนึ่งที่มีความแตกต่างกันระหว่างการนิยามเมธอดใน IRB กับในไฟล์ Ruby ก็คือ IRB จะผูกเมธอดที่นิยามในขอบเขตที่เป็น public แต่ในไฟล์จะถูกผูกในขอบเขตที่เป็น private อันนี้ต้องไปลองเล่นดูได้นะครับ จะได้เห็นความแตกต่าง