Gemfile e gemspec

O problema com Gemfilee gemspecsurge quando você precisa extrair algo bruto como uma gema (por exemplo, um aplicativo Rails autônomo um dia se torna um mecanismo montável em Rails), você deve alterar seu fluxo de trabalho de gerenciamento de dependência normal. O bem antigo bundle installnão é mais suficiente.

Digamos que você tenha um projeto Gemfilecheio de joias. O que você fará se precisar fazer referência a este projeto em outro projeto?

Em primeiro lugar, crie o project.gemspecarquivo. Veja os documentos do Bundler .

bundle gem my_gem

Você deve referenciar seu gemspecinterior da Gemfileseguinte forma:

source 'http://rubygems.org'

gemspec

Cada gem que você tinha no Gemfilecomo uma dependência agora deve residir dentro do gemspecarquivo assim:

Gem::Specification.new do |s|
...
s
.add_dependency "how-cute-and-adorable", "= 0.3.2"
...
end

Verifique se o bundle installcomando instala todas as gemas necessárias antes de passar para a próxima etapa.

Cada joia precisa carregar automaticamente suas próprias dependências manualmente. Digamos que em seu libdiretório você tenha project.rb:

require 'project/stuff'
require 'project/more_stuff'

module Project

end

No, project.rbvocê deve adicionar todas as gemas que possui nas dependências. Tenha especial cuidado se o nome da gema não corresponder ao que você realmente precisa :

require 'how-cute-and-adorable'
require 'cute'
require 'cute/and-adorable'

require 'project/stuff'
require 'project/more_stuff'

module Project

end