2010-11-19 24 views
11

Có thể âm thanh như một câu hỏi mới (và đó là vì tôi mới sử dụng Ruby và IRB) nhưng có cách nào để lưu các lệnh bạn đã thực hiện trong IRB vào tệp không? Tôi đang chơi với WATIR và rất thích lưu tất cả dữ liệu đầu vào của mình vào tệp thay vì sao chép và dán từng tệp.Làm cách nào để lưu đầu vào IRB vào tệp .rb?

Cảm ơn sự giúp đỡ!

+0

liên quan đến: http://stackoverflow.com/questions/4218940/frequently-flush-irb-history-to-file – tinifni

Trả lời

27

Trên máy tính của tôi, tôi có thể đặt điều này trong tập tin .irbrc của tôi (nằm trong thư mục chính của bạn):

Kernel.at_exit { 
    File.open("irb.log", "w") do |f| 
    f << Readline::HISTORY.to_a.join("\n") 
    end 
} 

Nó tạo ra một tập tin irb.log có chứa lịch sử readline của bạn. Irb sử dụng readline để nhập lệnh. Nó có thể được cấu hình không sử dụng readline cho một số người, tôi không biết. Và có lẽ lịch sử sẽ bị cắt bớt tại một số điểm, hoặc có thể nó sẽ được sửa đổi bởi một số lệnh bạn làm trong phiên làm việc của bạn ... nhưng hãy thử nó và xem nó có hoạt động hay không.

Nếu bạn muốn nhắc IRB và kết quả của mỗi lệnh được đưa vào nhật ký, sau đó chỉ cần sử dụng tee để ghi lại kết quả của IRB:

$ irb | tee irb.log 
+0

1! Giải pháp thanh lịch! – jwueller

+0

Tôi đã sử dụng nó và nó hoạt động như một sự quyến rũ! Cảm ơn :) – Enrique

0

Tôi đã tìm thấy câu hỏi này khi tìm cách thực hiện tương tự. Tôi đã chuyển từ IRB sang Pry; nó là một dự án REPL riêng biệt cho Ruby có một loạt các tính năng nâng cao không được hỗ trợ trong IRB.

Điều đáng xem.

Pry

Các vấn đề liên quan