如果gemspec使用__dir__,则无法推送至gemfury

时间:2019-08-22 14:13:17

标签: ruby

当我尝试通过推入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__

1 个答案:

答案 0 :(得分:2)

这时,Gemfury构建器运行了不支持__dir__的Ruby 1.9。

就像你说的,我建议暂时做File.expand_path('../lib', __FILE__)