Я работаю с 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 Почему модуль нарушает мой исполняемый файл?