2009-01-27 32 views
8

Có thể đặt điều kiện phụ thuộc vào đá quý tại thời điểm cài đặt không? Đây là tình huống của tôi mà hy vọng sẽ làm rõ câu hỏi.Phụ thuộc đá quý có điều kiện

Có một đá quý tôi duy trì phụ thuộc vào đá quý json. Tuy nhiên, tôi thường xuyên sử dụng jruby có một cổng của đá quý json được gọi là json-jruby. Để làm việc xung quanh điều này tôi phải xây dựng hai viên đá quý riêng biệt cho mỗi phụ thuộc. Tôi muốn xây dựng một viên đá quý hoặc nói rằng nó phụ thuộc vào json hoặc json-jruby, hoặc nó kiểm tra lúc cài đặt và sử dụng sự phụ thuộc đúng.

Bất kỳ ai có giải pháp tốt cho điều này?

Trả lời

3

Hmm,

Tôi tin rằng người ta có thể mã nhiều phụ thuộc vì tôi đã nhận thấy đá quý dường như làm điều này. Nhưng tôi sẽ khuyên bạn không nên làm điều này. Cho dù mã bạn chèn vào ở đây đơn giản như thế nào, khi bạn xem xét rằng người dùng sẽ tải một viên ngọc phụ thuộc vào cái khác phụ thuộc vào cái khác, ngay cả một trục trặc nhỏ trong logic của một đoạn mã hay cái khác có thể làm cho toàn bộ phụ thuộc đào tạo một cơn ác mộng.

Vì vậy, tôi sẽ để nguyên kludge của bạn. Hơn nữa, tôi đề nghị bạn có một tarball mà người dùng có thể tải xuống là tốt. Tôi đã phải tự giải nén mã bên trong của đá quý có mã cấu hình sẽ không cho phép tôi cài đặt chúng.

3

thanh toán một phần nào hướng dẫn ở đây: http://wiki.github.com/rdp/ruby%5Ftutorials%5Fcore/gem

nó cho thấy làm thế nào để cài đặt phiên bản khác nhau phụ thuộc tùy thuộc vào những gì phiên bản của ruby ​​các installee đang sử dụng.

(trả lời ngắn gọn - nó không phải là dễ dàng như nó phải được)

+1

Link đã chuyển đến: http://en.wikibooks.org/wiki/Ruby_Programming/RubyGems#How_to_install_different_versions_of_gems_depending_on_which_version_of_ruby_the_installee_is_using –

+0

Yehuda Katz nói này là một ý tưởng tồi. Và gợi ý đặt một điều kiện trong gemspec và xây dựng hai phiên bản. –

+0

điều kiện trong gemspec có thể kiểm soát "jruby so với mri" nhưng (như chưa) không thể kiểm soát nói 1.8 so với 1.9 đá quý. Tôi đồng ý với yehuda đó là một ý tưởng tồi, nhưng tôi không biết về một công việc xung quanh cho nó bên cạnh điều này hiện nay. – rogerdpack

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