Tôi muốn viết một kịch bản một cái gì đó của Ruby như thế này:Tôi có thể viết mã Ruby được thực hiện chỉ khi kịch bản của tôi được chạy, nhưng không phải khi nó được yêu cầu?
class Foo
# instance methods here
def self.run
foo = Foo.new
# do stuff here
end
end
# This code should only be executed when run as a script, but not when required into another file
unless required_in? # <-- not a real Kernel method
Foo.run
end
# ------------------------------------------------------------------------------------------
Tôi muốn có thể cho đơn vị kiểm tra nó, đó là lý do tôi không muốn mã bên ngoài của lớp để chạy, trừ khi tôi thực hiện tập lệnh trực tiếp, tức là ruby foo_it_up.rb
.
Tôi biết tôi có thể chỉ cần đặt lớp Foo
vào một tệp khác và require 'foo'
trong tập lệnh của tôi. Trong thực tế, đó có lẽ là một cách tốt hơn để làm điều đó, chỉ trong trường hợp chức năng của Foo
là cần thiết ở một nơi khác. Vì vậy, câu hỏi của tôi là học thuật hơn bất cứ điều gì, nhưng tôi vẫn muốn được quan tâm đến việc biết làm thế nào để làm điều này trong Ruby.
có thể trùng lặp của [Chạy thư viện Ruby từ dòng lệnh] (http://stackoverflow.com/questions/487086/run-a-ruby-library-from-the-command-line) - nhưng phải mất một số Googling nghiêm túc để tìm thấy nó! Tôi ngạc nhiên khi câu hỏi này không được hỏi thường xuyên hơn. –
Andrew: Tương tự ở đây. Tôi hy vọng sẽ tìm thấy câu trả lời trên Stack Overflow! Cảm ơn vì sự giúp đỡ của bạn lần nữa. –