Ruby dabbler / newbie here qui n’est pas familier avec l’écosystème, excusez-moi si c’est une de ces questions super douteuses.
Existe-t-il un moyen d’afficher tous les fichiers et / ou le code source installés par une gemme? C’est-à-dire que je viens de courir
$ gem install sass
Et le joyau de sass fait maintenant partie de mon système local
$ gem list --local ... sass (3.1.16, 3.1.2) ...
Je veux savoir ce que la commande d’ gem install
mise sur mon système. Existe-t-il une commande que je peux exécuter pour voir tous les fichiers installés par la gem?
Après quelques commandes googling, man gem
et gem help commands
, j’ai découvert la commande de contents
.
$ gem contents sass
Cependant , lorsque je lance cette commande avec le sass gem susmentionné, j’obtiens les résultats suivants
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/engine_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/functions_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/extend_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/logger_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/css2sass_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/conversion_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/script_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/util/subset_map_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/util/multibyte_ssortingng_scanner_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/callbacks_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/importer_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/scss/css_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/scss/scss_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/scss/rx_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/util_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/script_conversion_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/less_conversion_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/cache_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/plugin_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/bin/sass .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/bin/sass-convert .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/bin/scss
Cependant, cette liste semble incomplète car je sais qu’il existe des fichiers dans
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.2/lib/
Pourquoi le contents
n’affiche-t-il pas les fichiers de lib
?
Est-il possible pour un installateur de gem
d’installer des fichiers en dehors du dossier gems?
Y a-t-il une commande qui peut montrer tout ce qui est installé par une gemme?
gem a une commande de décompression: http://guides.rubygems.org/command-reference/#gem-unpack
gem unpack rake ls rake-0.4.3/
Il y a deux très bonnes façons de le faire. Il y a un autre bijou qui vous permet d’ouvrir la gem et de l’éditer. Ce bijou s’appelle gem-open
gem install gem-open
puis
gem open sass
Une autre méthode consiste à générer vos propres documents.
gem rdoc sass
Vous pouvez alors regarder vos documents par
gem server
De plus, si vous utilisez rvm, vous pouvez taper rvm info
et afficher l’emplacement GEM_HOME
. Ce sera l’endroit où se trouve tout le code source de vos gemmes.
cd $GEM_HOME cd gems/sass-3.1.2/
Mettre à jour:
C’est la façon dont je le fais surtout maintenant, lorsque vous utilisez un bundler.
cd $(bundle show sass)
Ce sera la version de sass dans votre Gemfile.
J’ouvre habituellement une gem en exécutant cette commande depuis la console
EDITOR= bundle open
Le répertoire lib / que vous avez mentionné est pour la version 3.1.2 de la gem; gem contents
sans --version
seulement une version ( il semble choisir la version la plus récente, mais je ne peux pas vérifier que ceci est toujours vrai ). Quelle sortie obtenez-vous pour les gem contents --version 3.1.2 sass
?
Vous pouvez également utiliser simplement renommer le fichier .gem en .tar et extraire en tant qu’archive posix. Le code source se trouve dans le dossier lib
. Voir https://blog.srcclr.com/extracting-ruby-source-code-from-gem-packages/ pour plus de détails.
En plus du gem contents
, une autre commande que vous pourriez trouver utile est l’ gem environment
. Si vous avez plusieurs chemins pour vos installations de gemmes, ils seront tous listés sous le label “GEM PATHS”.