我正在构建一个需要安装json gem的gem,以便它可以工作。哪个json gem:json_pure,json-jruby或基于C的json无关紧要。
有没有一种很好的方法在gemspec中定义它? This response建议为每个版本维护一个完全独立的gem,但似乎必须有更好的方法。
有没有人有这方面的经验?
我应该只使用spec.requirements选项向用户发出他/她需要json gem的通知吗?
答案 0 :(得分:2)
是的,我会在spec.requirements
中建议一个简单的文字要求。我还建议在宝石首次加载时进行某种加载链接:
# 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