Tôi đang sử dụng IRB (bảng điều khiển ruby tương tác) để tìm hiểu cách lập trình với Ruby. Làm cách nào để tải tệp vào bảng điều khiển nếu trước tiên tôi viết chương trình của mình trong trình soạn thảo văn bản?
Tôi đang sử dụng IRB (bảng điều khiển ruby tương tác) để tìm hiểu cách lập trình với Ruby. Làm cách nào để tải tệp vào bảng điều khiển nếu trước tiên tôi viết chương trình của mình trong trình soạn thảo văn bản?
Câu trả lời:
Nếu bạn chỉ cần tải một tệp vào IRB, bạn có thể gọi tệp đó irb -r ./your_file.rb
nếu nó nằm trong cùng một thư mục.
Điều này tự động yêu cầu tệp và cho phép bạn làm việc với nó ngay lập tức.
rake irb
và nó làm tất cả cho tôi.
irb -r /foo/foo.rb
Sử dụng ruby 1.9.3 trên Ubuntu 14.04, tôi có thể tải các tệp từ thư mục hiện tại vào irb
bằng dòng lệnh sau:
irb -I . -r foo.rb
đâu foo.rb
là tệp tôi muốn tải từ thư mục hiện tại của mình. Các -I
tùy chọn là cần thiết để thêm thư mục hiện hành ( .
) vào đường dẫn tải ruby, như được giải thích trong trang ruby người đàn ông. Điều này làm cho nó có thể truy cập require
các tệp từ thư mục hiện tại, đó là những gì -r
tùy chọn để irb
thực hiện.
Điều quan trọng mà tôi không rõ ràng khi tôi gặp vấn đề này là -I
tùy chọn. Khi bạn làm điều đó, bạn có thể gọi require 'foo.rb'
từ bên trong irb
cho bất kỳ tệp nào trong thư mục hiện tại. Và tất nhiên, bạn có thể chỉ định bất kỳ thư mục nào bạn muốn, không chỉ .
với -I
tùy chọn. Để bao gồm nhiều thư mục trên đường dẫn tải, hãy phân tách chúng bằng dấu hai chấm (:), ví dụ:
irb -I foo/:bar/:baz/
Lệnh này sẽ bổ sung thêm các thư mục foo
, bar
và baz
vào đường dẫn tải ruby của.
Giải pháp thay thế cuối cùng là sử dụng đường dẫn tương đối hoặc tuyệt đối đến tệp khi sử dụng require
hoặc -r
tải tệp:
irb -r ./foo.rb
hoặc từ bên trong irb
:
> require './foo.rb'
Gõ vào irb
Và sau đó
require './ruby_file.rb'
Điều này giả sử rằng ruby_file.rb nằm trong cùng một thư mục. Điều chỉnh phù hợp.
require_relative
. Ví dụ như require "./lib/foo"
hoạt động tương tự nhưrequire_relative "lib/foo"
.rb
là tùy chọn, bạn có thể viết require './ruby_file'. I checked in
ruby 1.9.3p551 '
Hai lối:
source("filename.rb")
require("filename.rb")
require
mà dường như không tải lại tập lệnh (bất kỳ sửa đổi nào đối với nguồn gốc không được phản ánh trong phiên của bạn), trong khi source
dường như phản ánh các thay đổi đối với tập lệnh gốc.
Nó phụ thuộc vào ruby của bạn. Ruby 1.8 bao gồm đường dẫn hiện tại của bạn, trong khi ruby 1.9 thì không. Đánh giá $:
để xác định xem con đường của bạn có được bao gồm hay không. Vì vậy, trong ruby 1.9, bạn phải sử dụng toàn bộ đường đi, đây luôn là cách đặt cược an toàn.
Sau đó, bạn có thể sử dụng require
hoặc load
bao gồm tệp.
require
không yêu cầu bạn thêm hậu tố của tệp khi cố gắng tìm nó và sẽ chỉ bao gồm tệp một lần. require
nên được sử dụng thay vì load
hầu hết thời gian.
Kiểm tra Thêm thư mục vào $ LOAD_PATH (Ruby) nếu bạn đang sử dụng ruby 1.8
Nhập mã ruby vào trình soạn thảo văn bản
Lưu nó với phần mở rộng .rb (ví dụ: demo.rb ).
Trong linux, hãy mở terminal của bạn sau đó thay đổi thư mục thành vị trí hiện tại của tệp đó (lệnh cd được sử dụng để thay đổi thư mục).
Sau đó, nhập irb và tên tệp của bạn (đừng quên bao gồm phần mở rộng của bạn (.rb)).
Trong hình ảnh đó, tôi đã tải một tệp ruby đơn giản chỉ in "ruby".
Một cách khác để tải đường dẫn vào irb là chỉ cần gõ lệnh request sau đó kéo và thả tệp tin vào terminal.🙂 -được kiểm tra bằng Linux Mint.
Đối với những người muốn tải tệp .rb từ thư mục khác. Chỉ cần thêm một trình đại diện chuỗi của thư mục vào biến $:.
> $: << "/directory/to/the/required/rb/file"
> require "some_file"