Ruby Gemspec 中的条件依赖

2023-11-22

我正在构建一个 gem,需要安装 json gem 才能正常工作。哪种 json gem 并不重要:json_pure、json-jruby 或基于 C 的 json。

有没有在 gemspec 中定义这个的好方法?这个回应建议为每个版本维护一个完全独立的 gem,但似乎必须有更好的方法。

有人有这方面的经验吗?

我应该只使用规格要求选项来通知用户他/她需要 json gem?


是的,我会建议一个简单的文本要求spec.requirements。我还建议在 gem 首次加载时进行某种加载链:

# in init.rb and/or rails/init.rb:
unless Object.const_defined?(:JSON)
  begin
    require 'json_pure'
  rescue LoadError
    begin
      require 'json-ruby'
    rescue LoadError
      require 'json'
    end
  end
end
unless Object.const_defined?(:JSON)
  raise "Could not load gem MyGem; did you install one of json_pur, json-ruby, or the C-based json library?"
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby Gemspec 中的条件依赖 的相关文章

随机推荐