Я создал камень с gemspec
:
# frozen_string_literal: true
Gem::Specification.new do |s|
s.name = 'my_gem'
s.version = '0.0.1'
s.date = '2019-05-31'
s.summary = 'summary'
s.description = 'description'
s.authors = ['my name']
s.email = 'my@email.com'
s.files = Dir['{lib}/**/*.rb', 'bin/*', '*.md']
s.require_path = 'lib'
s.executables = ['some_bin']
s.homepage = 'https://some.homepage.com'
s.license = 'MIT'
s.add_dependency 'hidapi', '= 0.1.9'
end
Я ожидал, что после добавления моего драгоценного камня в Gemfile
, упаковщик установит не только my_gem
, но и зависимости, то есть hidapi
. Однако, когда я пытаюсь запустить rails s
, я получаю сообщение об ошибке.
Traceback (most recent call last):
bin/rails: Bootsnap::LoadPathCache::FallbackScan
(...)
kernel_require.rb:22:in `require': cannot load such file -- hidapi (LoadError)
В Gemfile.lock my_gem
не имеет никакой зависимости. Что я пропустил?
Решение
Я думал, что упаковщик использует только gemspec, но, похоже, он использует Gemfile из моего драгоценного камня. Мой gemfile также имел все зависимости, но он должен требовать gemspec
напрямую. Это должно выглядеть так:
# frozen_string_literal: true
source 'https://rubygems.org'
gemspec
Я даже не знаю, нужен ли source 'https://rubygems.org'
.