Sie können die Edelsteinspezifikation überprüfen, um zu sehen, ob extensions
definiert ist. Sie müssen das Juwel herunterladen oder überprüfen Sie die Quelle, dies zu tun, aber es ist nicht schwierig, mit ein wenig Unix-fu programmatisch zu tun:
curl -L <gem-url> | tar xOf - metadata.gz | gunzip | ruby -r yaml -e 'p YAML.load($stdin.read).extensions.any?'
Lassen Sie uns bson & bson_ext vergleichen (da sie die erste nicht sind -C-Erweiterung und C-Erweiterung Versionen des gleichen Juwel ich denken konnte):
% curl -L https://rubygems.org/downloads/bson-1.8.0.gem | tar xOf - metadata.gz | gunzip | ruby -r yaml -e 'p YAML.load($stdin.read).extensions.any?'
false
% curl -L https://rubygems.org/downloads/bson_ext-1.8.0.gem | tar xOf - metadata.gz | gunzip | ruby -r yaml -e 'p YAML.load($stdin.read).extensions.any?'
true
Sie die Notwendigkeit automatisieren könnte die aktuelle Version des Edelsteins wissen, unter Verwendung der RubyGems API:
curl https://rubygems.org/api/v1/gems/bson.yaml | ruby -r yaml -e 'p YAML.load($stdin.read)["version"]'