Почему Bundler собирает модуль Foo в lib / foo.rb? - PullRequest
0 голосов
/ 27 октября 2019

Я работаю с bundler и воспроизводю базовый гем, найденный на rubygems.org , чтобы лучше понять, запустив gems как executables. Для краткости я воспроизводлю здесь только необходимый код.

bundle gem foo создает необходимое дерево драгоценных камней. Однако в скелете lib/foo.rb

module Foo
class Error < StandardError; end
...
end

В irb, когда я запускаю ruby -Ilib ./bin/foo, irb выдает ошибку: /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in 'require': cannot load such file -- foo (LoadError) from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in 'require' from ./bin/foo:3:in '`

IПолучите мой желаемый результат (соответствующий результат hola mundo , когда я удаляю module Foo и class Error в foo.rb.

Мои 2 взаимосвязанных вопроса *Таким образом, 1027 * равны: 1 Почему модуль предварительно собран компоновщиком в lib / foo.rb?

и 2 Почему модуль нарушает мой исполняемый файл?

...