Tôi nghĩ rằng đó là khá nhiều điểm trên. Theo mặc định, Rubygems sẽ thêm thư mục lib vào loadpath, nhưng bạn có thể đẩy bất kỳ thư mục nào bạn muốn lên đó bằng biến $ :. I E
$:.push File.expand_path(File.dirname(__FILE__) + '/../surfcompstuff')
Điều đó có nghĩa là khi bạn nói, surfer.rb
trong thư mục đó, bạn có thể require "surfer"
tìm thấy bất cứ nơi nào và tập tin sẽ được tìm thấy.
Ngoài ra, như một quy ước, các lớp và singletons có được một tệp và các mô-đun có được một thư mục. Chẳng hạn, nếu bạn có LolCatz
mô-đun và LolCatz::Moar
lớp trông như sau:
lib/
appname.rb
lolcatz/
moar.rb
Đó là lý do tại sao có một thư mục lib / appname vì hầu hết các thư viện đều nằm trong appname
không gian tên.
Ngoài ra, nếu bạn thử chạy lệnh newgem --simple [projectname]
sẽ nhanh chóng tạo ra một giàn giáo cho bạn chỉ với các yếu tố cần thiết cho dự án Ruby (và bằng cách mở rộng Ruby Gem). Có những công cụ khác làm điều này, tôi biết, nhưng newgem khá phổ biến. Tôi thường loại bỏ tệp TODO và tất cả nội dung tập lệnh.