REPL ย่อมาจาก Read-Eval-Print-Loop
มันคือโปรแกรมที่ช่วยให้คุณ พิมพ์โค้ด Ruby และเห็นผลลัพธ์โดยตรง
REPL ยอดนิยมหนึ่งคือ irb
อีกตัวคือ pry
พวกมันมีประโยชน์เพราะคุณสามารถทดสอบได้เร็วว่าโค้ด Ruby บางส่วนทำงานอย่างไร
ตัวอย่าง:
ถ้าคุณพยายามแปลงอาร์เรย์ของสตริงเป็นอาร์เรย์ของจำนวนเต็ม
คุณอาจไม่จำได้ว่า ทำอย่างไร...
คุณค้นหา (ซึ่งเป็นเรื่องปกติ!)
และลองใน REPL จนกว่าจะทำงานได้เหมือนที่คุณต้องการ แล้วคุณนำโค้ดนี้รวมเข้ากับโปรเจกต์
ประโยชน์ใหญ่?
คุณสามารถทดสอบโค้ดเล็กน้อยด้วยตัวมันเอง ดังนั้นถ้ามันไม่ทำงาน คุณมีส่วนที่เคลื่อนไหวน้อยลง และคุณหาวิธีแก้ได้ง่ายขึ้น
มันให้คุณโฟกัสที่หนึ่งอย่าง!
ตอนนี้:
มาทบทวน REPLs ที่คุณสามารถใช้กับ Ruby
Interactive Ruby Shell (IRB)
IRB เป็น REPL ตัวแรกของ Ruby ที่นักพัฒนา Ruby ทุกคนคุ้นเคย
มันไม่มีฟีเจอร์มาก แตทำหน้าที่ได้
คุณพิมพ์โค้ด และได้ผลลัพธ์กลับมา
คุณใช้ irb อย่างไร?
คุณเปิด irb โดยพิมพ์ irb ภายในหน้าต่างเทอร์มินัล
นี่คือสิ่งที่คุณควรเห็น:
irb(main):001:0>
จากนั้นคุณเขียนโค้ด Ruby และกด enter เพื่อรัน
ถ้าคุณต้องการปิด irb คุณพิมพ์ exit
คุณสามารถเปิดประวัติคำสั่งได้โดยสร้างไฟล์ .irbrc ในโฟลเดอร์ home
ด้วยเนื้อหานี้:
IRB.conf[:SAVE_HISTORY] = 500
เพิ่มนี้ด้วยถ้าคุณต้องการ auto indent:
IRB.conf[:AUTO_INDENT] = true
หรือปรับแต่ง prompt แบบนี้:
IRB.conf[:PROMPT][:CUSTOM] = {
PROMPT_I: "irb(#{Dir.pwd}) ",
PROMPT_S: "irb(#{Dir.pwd})* ",
PROMPT_C: "irb(#{Dir.pwd})? ",
PROMPT_N: "irb(#{Dir.pwd})* ",
RETURN: "%s\n"
}
IRB.conf[:PROMPT_MODE] = :CUSTOM
ประโยชน์ของการใช้ Gem Pry
Pry เป็น REPL และ Ruby gem ที่คุณติดตั้งได้ตลอดเวลา
มันเหมือน irb แตมีฟีเจอร์มากกว่า
ฟีเจอร์อย่าง:
- Syntax highlighting
- Autocompletion (irb มีบ้าง แตพื้นฐานมาก)
- Introspection commands (list methods, variables, constants, ฯลฯ)
- แก้ไขโค้ดที่พิมพ์ก่อนหน้า และรันอีกครั้ง
- Debugging
ฟีเจอร์เหล่านี้ทำให้ pry เป็นตัวเลือกที่ดีกว่าส่วนใหญ่ ลองใช้ดูถ้ายังไม่เคย
ถ้าคุณใช้ Rails คุณสามารถเปิด pry สำหรับ rails console โดยเพิ่ม pry-rails ใน Gemfile
สิ่งนี้ยังเพิ่มคำสั่ง show-models และ show-routes
Pry มีตัวเลือกการตั้งค่ามาก คุณตั้งค่าในไฟล์ .pryrc ในโฟลเดอร์ home สำหรับการตั้งค่าทั่วไป หรือในโฟลเดอร์โปรเจกต์สำหรับการตั้งค่าท้องถิ่น
Ruby -e
ถ้าคุณแค่อยากรันบรรทัดเดียวของโค้ด Ruby โดยไม่เปิด REPL คุณสามารถใช้แฟล็ก -e ของ Ruby
ตัวอย่าง:
ruby -e "puts 123 * 2"
นี่ดีมากสำหรับการทดสอบสิ่งใดสิ่งหนึ่งอย่างรวดเร็ว โดยไม่ต้องเปิด IRB
Online REPLs
ถ้าคุณไม่มีการเข้าถึงการติดตั้ง Ruby ตอนนี้?
หรืออาจจะอยากทดสอบสิ่งใดสิ่งหนึ่งในสภาพแวดล้อมที่ต่างจากคอมพิวเตอร์ local
หรือแชร์โค้ดเพื่อการสาธิต หรือขอ feedback
นั่นคือสิ่งที่ online REPLs ทำได้ดี
อันที่ผมชอบคือ https://repl.it/languages/ruby
สรุป
คุณได้เรียนรู้เกี่ยวกับ REPLs ใน Ruby! REPL ช่วยให้คุณทดสอบโค้ดได้เร็วโดยไม่ต้องเขียนลงไฟล์
ตอนนี้เวลาฝึกแล้ว 🙂