วิธีเรียกใช้ไฟล์. rb จาก IRB


89

ฉันเริ่มต้นด้วย Ruby on Rails ฉันกำลังอ่านบทช่วยสอนที่มันบอกว่าฉันต้องเรียกใช้ไฟล์. rb จาก IRB และนั่นจะสร้างไฟล์. xml ในไดเร็กทอรีปัจจุบันของฉัน

คำถามของฉันคือฉันจะเรียกใช้ไฟล์. rb ใน IRB ได้อย่างไร
และฉันต้องอยู่ในไดเร็กทอรีที่ไฟล์. rb นี้มีชีวิตอยู่เมื่อฉันเรียกใช้ใน IRB หรือไม่

ฉันลองทำสิ่งต่อไปนี้: เพียงพิมพ์irbบนบรรทัดคำสั่งในไดเร็กทอรีของไฟล์ นั่นเป็นการเริ่มเซสชัน IRB เท่าที่ฉันเข้าใจ
จากนั้นฉันพิมพ์irb "filename.rb"สิ่งที่ผ่านไป แต่ไม่ได้สร้างอะไรในไดเร็กทอรีปัจจุบัน แต่อย่างน้อยมันก็ไม่ให้ข้อผิดพลาดใด ๆ

ฉันยังได้ลองสิ่งอื่น ๆ อีกมากมายที่ทำให้ฉันมีข้อผิดพลาด ดังนั้นฉันจึงไม่คิดว่าจะแก้ปัญหานี้ได้ด้วยตัวเองและ googling เรื่องนี้ก็ไม่ได้ช่วยอะไรเลย

ฉันวิ่ง Leopard

คำตอบ:


176

คุณสามารถ "เรียกใช้" ไฟล์ใน irb ได้โดยเพียงแค่ต้องการหรือโหลด

$ irb
>> load './filename.rb'

ในการเปลี่ยนไดเร็กทอรีการทำงานปัจจุบันของคุณภายใน irb คุณสามารถใช้FileUtils :

>> require 'fileutils'
>> FileUtils.pwd # prints working directory
>> FileUtils.cd '/path/to/somewhere' # changes the directory

3
ต้องการใช้จาก irb คุณต้องระบุเส้นทางที่มีคุณสมบัติครบถ้วนดังนั้น: require '~/myrubystuff/coolstuff.rb' แทนที่จะเป็นเพียง require 'coolstuff'
runlevel0

ฉันสามารถต้องการfileutilsโดยใช้ชื่อเพียงอย่างเดียวไม่จำเป็นต้องใช้เส้นทางไดเรกทอรี ฉันแน่ใจว่ามันขึ้นอยู่กับสภาพแวดล้อมและไม่ใช่ทุกคนที่จะต้องใช้เส้นทางที่มีคุณสมบัติเหมาะสม
volx757

6

ในกรณีที่คุณต้องการให้ไฟล์ของคุณโหลดในเซสชันirbและคุณใช้ Ruby 2+ คุณสามารถโหลดไฟล์ในirb ได้ดังนี้:

irb -r ./the_name_of_your_file.rb

ซึ่งจะเปิดเซสชัน irb พร้อมกับโหลดไฟล์ที่กำหนด

ลองนึกภาพคุณมีไฟล์ที่มีคลาสเช่นนี้:

class Example
  def initialize(name)
    @name = name
  end

  def print__example
    p name
  end
end

คุณจะสามารถใช้คลาสตัวอย่างในเซสชันirb


นั่นคือสิ่งที่ฉันกำลังค้นหาจริงๆขอบคุณมาก!
thomas

สิ่งนี้ให้การเข้าถึงเฉพาะฟังก์ชันไม่ใช่ตัวแปรที่กำหนดไว้ในไฟล์
Radon Rosborough

2

เราสามารถสร้างไฟล์. rb ในไดเร็กทอรีที่คุณกำลังทำงานอยู่โดยใช้โปรแกรมแก้ไขข้อความใด ๆ และพิมพ์รหัสทั้งหมดในนั้นจากนั้นใช้คำสั่งruby filename.rbในเทอร์มินัลไม่ใช่ใน irb จากนั้นจะแสดงผลลัพธ์ใน irb


4
แต่โดยการโหลดไฟล์คุณสามารถเข้าถึงตัวแปรที่กำหนดไว้ที่นั่นได้ มีประโยชน์เมื่อแก้ไขปัญหาหรือเล่นกับไลบรารี
Sonia Hamilton

@Sreenivas นี่คือสิ่งที่ฉันกำลังมองหา ขอบคุณ!
Joshua Pinter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.