2013-05-24 29 views
5

Tôi muốn tạo một ứng dụng Ruby mới, vì vậy tôi quyết định sử dụng bundle gem foo để làm điều đó. Điều này đã cho tôi toàn bộ:Đá quý Ruby tươi từ Bundler - không thể tải tệp version.rb của tôi?

lib/ 
    foo/ 
    version.rb 
    foo.rb 
Gemfile 
Rakefile 
foo.gemspec 
README.md 

cấu trúc. Bây giờ khi tôi chạy ruby foo.rb, tôi nhận được:

`require': cannot load such file -- foo/version (LoadError) 

foo.rb chỉ là mặc định:

require 'foo/version' 

module Foo 
end 

thể đá quý không được chạy trên riêng của họ? Tôi hy vọng tôi không phải bao gồm đá quý của tôi vào một ứng dụng mẫu chỉ để kiểm tra nó ra?

Trả lời

6

Bạn cần chạy bundle exec ruby foo.rb để sử dụng Đá quý đi kèm.

Hoặc, bạn có thể sửa đổi foo.rb chính nó để giả định Bundler. Chỉ cần đặt

require 'bundler/setup' 

ở trên cùng.

0

Bạn đang chạy thư mục nào? Tôi sẽ kiểm tra $ LOAD_PATH của bạn và đảm bảo lib được bao gồm trong đó.

+0

Dường như tôi không chạy thư mục nào. Ngoài ra, không phải gemspec bao gồm $ LOAD_PATH? –

+0

gemspec thường làm 'unshift' thư mục lib vào nó, nhưng nếu bạn muốn chạy bất kỳ mã nào, bạn sẽ phải tự thêm thư mục lib. Một số đá quý/utils (không thể nghĩ ra một tên tốt) như RSpec sẽ thêm lib và spec vào đường dẫn tải cho bạn. –

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