2013-03-09 13 views
9

tôi vừa tạo ra một viên ngọc thử nghiệm sử dụng bó và nó tạo ra một tập tin .gem với nội dung không thể đọc được vì vậy tôi đã tự hỏiTệp .gem có chứa gì? Làm thế nào nó đang được sử dụng bởi khung Rails?

  1. những gì hiện rằng tập tin .gem chứa? dữ liệu nhị phân này là gì? như tôi đã từng nghĩ rằng các tệp .gem chứa các hàm ruby ​​được đóng gói

  2. tệp .gem này được sử dụng bởi khuôn khổ đường ray như thế nào? vì nó không giống như một module

Cảm ơn

Trả lời

5

Bạn có thể xem những gì đang xảy ra nếu bạn kiểm tra các tập tin trên hệ thống tập tin của bạn.

Trong một môi trường Posix, bạn có thể kiểm tra các tập tin với lệnh file:

$: file bundler-1.3.0.gem   
bundler-1.3.0.gem: POSIX tar archive 

Như bạn có thể nhìn thấy nó là một kho lưu trữ tar. Vì vậy, nó là một tệp nhị phân, được đóng gói và quản lý bởi công cụ gem.

Đó là 'nhị phân', do đó bạn sẽ không nhìn thấy nó như là bạn có thể đã mong đợi.

Bạn là chính xác mặc dù, và bạn có thể tiếp tục nghĩ rằng nó chứa đóng gói 'chức năng' ruby.

Tất cả những gì bạn đã nói với nó để chứa thông qua gemspec của bạn (tuy nhiên bạn đã bao gồm nó) là ở đó.

Theo như cách sử dụng Rails gemfile, nó được sử dụng thường bằng cách cài đặt các viên ngọc để hệ thống của bạn, làm thế nào bao giờ được thực hiện là một phần phụ thuộc vào quyết định môi trường của bạn.

5

Một tập tin đá quý chỉ là một kho lưu trữ tar chứa (ít nhất) một tập tin gemspec. Cũng sẽ có các tệp nguồn ruby ​​và có thể là mã nguồn gốc hoặc các tài sản hỗ trợ (ví dụ một viên ngọc được thiết kế để sử dụng với các đường ray cũng có thể đóng gói một số javascript). Nó cũng phổ biến để bao gồm một README, CHANGELOG và tài liệu khác.

+0

Cảm ơn, làm thế nào tôi có thể xem/mở một tập tin đá quý? – iCyborg

+0

Chỉ cần giả vờ là tệp tar bình thường - tar -xvf foo.gem –