Làm cách nào để chạy tệp .rb từ IRB?


88

Tôi đang bắt đầu với Ruby on Rails. Tôi hiện đang xem qua một hướng dẫn trong đó nó nói rằng tôi phải chạy tệp .rb từ IRB và điều đó sẽ tạo tệp .xml trong thư mục hiện tại của tôi.

Câu hỏi của tôi là làm cách nào để chạy tệp .rb trong IRB?
Và tôi có phải ở trong thư mục chứa tệp .rb này khi tôi chạy nó trong IRB không?

Tôi đã thử cách sau: chỉ cần gõ irbvào dòng lệnh trong thư mục của tệp. Điều đó bắt đầu một phiên IRB theo như tôi hiểu.
Sau đó, tôi đã nhập irb "filename.rb"mà đã trải qua nhưng không tạo bất kỳ thứ gì trong thư mục hiện tại nhưng ít nhất nó không đưa ra bất kỳ lỗi nào.

Tôi cũng đã thử một loạt các công cụ khác mà rõ ràng đã cho tôi lỗi. Vì vậy, tôi không nghĩ rằng mình có thể tự mình giải quyết vấn đề này và việc đăng tải vấn đề này không giúp được gì cả.

Tôi đang chạy Leopard.

Câu trả lời:


175

Bạn có thể "chạy" một tệp trong irb bằng cách yêu cầu hoặc tải nó.

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

Để thay đổi thư mục làm việc hiện tại của bạn trong irb, bạn có thể sử dụng FileUtils :

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

3
để yêu cầu nó từ IRB bạn cần phải cung cấp đầy đủ đường dẫn, như sau: require '~/myrubystuff/coolstuff.rb' thay vì chỉ require 'coolstuff'
runlevel0

Tôi có thể yêu cầu fileutilsbằng tên một mình, không cần đường dẫn thư mục. Tôi chắc chắn rằng nó phụ thuộc vào môi trường và không phải ai cũng cần sử dụng đường dẫn đủ điều kiện.
volx757

5

Trong trường hợp bạn muốn tải tệp của mình trong phiên irb và bạn đang sử dụng Ruby 2+, bạn có thể tải tệp trong irb như sau:

irb -r ./the_name_of_your_file.rb

Thao tác này sẽ mở một phiên irb với tệp đã cho được tải.

Hãy tưởng tượng bạn có tệp với một lớp như thế này:

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

  def print__example
    p name
  end
end

Bạn sẽ có thể sử dụng lớp Ví dụ trong phiên irb .


đó là những gì tôi thực sự đang tìm kiếm, cảm ơn rất nhiều!
thomas

Điều này chỉ cấp quyền truy cập vào các hàm chứ không phải các biến được xác định trong tệp.
Radon Rosborough

2

Chúng tôi chỉ có thể tạo tệp .rb trong thư mục mà bạn hiện đang làm việc bằng cách sử dụng bất kỳ trình soạn thảo văn bản nào và nhập tất cả mã vào đó rồi sử dụng lệnh ruby filename.rbtrong terminal, không phải trong irb, sau đó nó hiển thị đầu ra trong irb.


4
Nhưng bằng cách tải tệp, bạn có thể truy cập các biến được xác định ở đó. Tiện dụng khi khắc phục sự cố hoặc chơi với thư viện.
Sonia Hamilton

@Sreenivas Đây chỉ là những gì tôi đang tìm kiếm. Cảm ơn!
Joshua Pinter
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.