2012-11-25 34 views
10

Tôi cần tham khảo đá quý cục bộ từ tập lệnh ruby ​​đơn giản, không cần cài đặt đá quý. Trên đường mòn của How to refer a local gem in ruby?, tôi đã cố gắng tạo ra một Gemfile với các thiết lập sau:Làm thế nào để tham khảo một viên ngọc địa phương từ một kịch bản ruby?

%w(
    custom_gem 
    another_custom_gem 
).each do |dependency| 
    gem dependency, :path => File.expand_path("../../#{dependency}", __FILE__) 
end 

và kịch bản trông như thế này:

require 'custom_gem' 
CustomGem::Do.something 

Khi tôi thực hiện điều này với:

bundle exec ruby script.rb 

Tôi nhận được:

script.rb:1:in `require': cannot load such file -- custom_gem (LoadError) from script.rb:1:in `<main>' 

Nếu tôi bỏ qua require 'custom_gem', tôi nhận được:

script.rb:3:in `<main>': uninitialized constant CustomGem (NameError) 

Tôi thậm chí đã cố gắng mà không bundler, và chỉ cần viết gem ... :path =>̣ ... trong kịch bản riêng của mình, nhưng không có kết quả. Có cách nào khác để tham khảo đá quý tùy chỉnh từ kịch bản ruby, mà không cần cài đặt đá quý cục bộ?

Trả lời

10

Hãy chắc chắn rằng tên viên ngọc của mình như giống như trong Gemfile (ví dụ custom_gem)

# Gemfile 

source "https://rubygems.org" 

gem "custom_gem", path: "/home/username/path/to/custom_gem" 

Đừng quên để thực sự cài đặt ngọc này sử dụng bundler

bundle install 

Sau đó, kịch bản nên sẵn sàng để sử dụng bởi bundle exec ruby script.rb

+0

Đúng, đã có lỗi chính tả, yêu cầu thứ khác một viên ngọc trong kịch bản. Cảm ơn! – tohokami

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