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.rbnế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 irbvà 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 irbbằng dòng lệnh sau:
irb -I . -r foo.rb
đâu foo.rblà tệp tôi muốn tải từ thư mục hiện tại của mình. Các -Itù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 requirecác tệp từ thư mục hiện tại, đó là những gì -rtùy chọn để irbthự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à -Itùy chọn. Khi bạn làm điều đó, bạn có thể gọi require 'foo.rb'từ bên trong irbcho 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 -Itù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, barvà bazvà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 requirehoặc -rtả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"
.rblà 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")
requiremà 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 sourcedườ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 requirehoặc loadbao gồm tệp.
requirekhô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. requirenên được sử dụng thay vì loadhầ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"