2009-03-26 42 views
12

Tôi đang tạo ra những gì tôi mong đợi là đá quý ruby. Bất cứ ai cũng có một liên kết tốt đến một hướng dẫn về chuyển đổi một thư viện đơn giản hoặc plugin để đá quý? Ngoài ra, đặc biệt là, quy trình mà Ruby sử dụng để cho phép yêu cầu tìm đá quý là gì? Nó có vẻ là một cái gì đó nhiều hơn đặt các tập tin trong đường dẫn đá quý (hoặc là cấu hình của tôi hơi say lên?).Làm thế nào để bạn nhận được một viên ngọc hồng ngọc vào đường dẫn bao gồm cho "yêu cầu"

Cảm ơn

Trả lời

26

Thực sự không khó để thực hiện việc này theo cách thủ công. Giả sử bạn có một thư viện whatever.rb mà bạn muốn phân phối dưới dạng đá quý.

  1. tạo một thư mục lib và đặt một bản sao whatever.rb vào lib/whatever.rb.
  2. tạo một tập tin whatever.gemspec, và đặt sau đây trong đó, điền vào các giá trị thích hợp:
    
    Gem::Specification.new do |spec| 
        spec.name = 'the-name-of-your-gem' 
        spec.version ='0.0.1'
    # this is important - it specifies which files to include in the gem. spec.files = ["lib/whatever.rb"]
    # optional, but useful to your users spec.summary = "A more longwinded description of your gem" spec.author = 'Your Name' spec.email = '[email protected]' spec.homepage = ' http://www.yourpage.com '
    # you did document with RDoc, right? spec.has_rdoc = true
    # if you have a ruby forge project spec.rubyforge_project = 'your-project-name-on-rubyforge'
    # if you have any dependencies on other gems, list them thusly spec.add_dependency('hpricot') spec.add_dependency('log4r', '>= 1.0.5') end
  3. bây giờ, để xây dựng các viên ngọc, sử dụng gem build lệnh:
     
    % gem build whatever.gemspec 
    Successfully built RubyGem 
    Name: the-name-of-your-gem 
    Version: 0.0.1 
    File: the-name-of-your-gem-0.0.1.gem 
    % 
    
  4. Bạn có thể kiểm tra tại địa phương bằng cách sử dụng gem install the-name-of-your-gem-0.0.1.gem Để sử dụng thư viện của bạn trong một kịch bản sau đó, bạn chỉ cần làm như sau ở đầu:

Để biết thêm về những gì các cài đặt khác nhau trong file gemspec, kiểm tra GemSpec Reference.

Cá nhân, tôi sử dụng rubygems rất nhiều để gói các tập lệnh thực thi cũng như tìm thấy nó rất tiện dụng cho điều đó.

+0

Có ai đó đánh dấu câu trả lời hay, câu trả lời chi tiết này mà không cần một bình luận? –

+0

Hoàn thành tuyệt vời. Câu trả lời tuyệt vời. – KeatsKelleher

+0

Tuyệt vời, câu trả lời này khiến tôi nhận ra rằng với bundler theo mặc định sau khi xây dựng một tệp chỉ có đá quý được thêm vào điều khiển phiên bản được thêm vào 'spec.files'. Đó là: 's.files = \' git ls-files \ '.split ($ \)' bỏ qua các tập tin bạn chưa thêm vào git. – erran

2

Có một số oldish one here từ Dr Nic, sử dụng newgem. Đó có lẽ là một chút lỗi thời.

Hơi gần đây hơn, chúng tôi nhận được đá quý, mà dường như xây dựng trên ở trên. Here's a post about that

Theo như đường dẫn, khi bạn đã thực hiện gem install <some-useful-stuff> và mã yêu cầu của bạn đã được thực hiện require 'rubygems' hoặc bạn đã đặt RUBYOPT = -rubygems (chỉ có trong Windows? Tôi không chắc chắn), sau đó thực hiện tiếp theo require cũng sẽ tìm kiếm thư mục đá quý cho một thư viện thích hợp.

Ngoài ra còn có lệnh rõ ràng hơn (nhưng không được chấp nhận) require_gem, hiện chỉ là đồng bằng gem, cho phép bạn chỉ định số phiên bản.

2

Để xây dựng đá quý ruby, bạn có thể muốn xem newgem hoặc jeweler.

+1

Ngoài ra còn có một railscast trên sử dụng bundler để tạo ra một viên ngọc mới. (http://railscasts.com/episodes/245-new-gem-with-bundler) – Intentss

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