当我尝试通过推入gemfury git remote(https://gemfury.com/help/git-push-package/)来构建gem时,出现以下错误:
Total 0 (delta 0), reused 0 (delta 0)
remote: Initializing build: done.
remote: -----> Building package...
remote: RubyGem build detected
remote: Invalid gemspec in [/build/app/crm.gemspec]: undefined local variable or method `__dir__' for Gem::Specification:Class
remote: ERROR: Error loading gemspec. Aborting.
remote: -----> Problem building package!
我的gemspec有这行:
$:.push File.expand_path('lib', __dir__)
此gemspec由rails plugin new
生成。
gem build
可以毫无问题地解析同一个gemspec。我的rubygems版本是3.0.3。
我应该在我的gemspec中不使用__dir__
吗?
我可以将__dir__
替换为__FILE__
,但是rubocop似乎更喜欢__dir__
。
答案 0 :(得分:2)
这时,Gemfury构建器运行了不支持__dir__
的Ruby 1.9。
就像你说的,我建议暂时做File.expand_path('../lib', __FILE__)
。