Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

เชี่ยวชาญ Ruby REPLs: IRB, Pry และอื่นๆ

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 ช่วยให้คุณทดสอบโค้ดได้เร็วโดยไม่ต้องเขียนลงไฟล์

ตอนนี้เวลาฝึกแล้ว 🙂