2009-12-02 13 views
7

Sto costruendo una gemma che ha bisogno di una gemma json installata affinché funzioni. Non importa quale gemma json: json_pure, json-jruby, o il json C-based.Dipendenza condizionale in Ruby Gemspec

C'è un buon modo per definire questo in un gemspec? This response suggerisce di mantenere una gemma completamente separata per ogni versione, ma sembra che ci debba essere un modo migliore.

Qualcuno ha qualche esperienza con questo?

Devo usare l'opzione spec.requirements per dare all'utente una notifica che ha bisogno di una gemma JSON?

risposta

2

Sì, vorrei suggerire un semplice requisito di testo in spec.requirements. Vorrei anche raccomandare una sorta di concatenamento del carico quando la gemma prima carica:

# 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 
+0

Suona come una buona idea. La cosa bella di tutte le gemme JSON è che hai solo bisogno di "json", quindi semplificherà il load-chaining. –

Problemi correlati