Ce matin je suis tombé sur un gem sympa. Il s’agit de gem stats.
L’idée est cool. Les gem hébergés sur gemcutter (et vu que bientôt, gemcutter.org deviendra rubygems.org, c’est 99.99% des gems ruby) ont des statistiques publiques. Il est donc possible à n’importe qui, via l’API gemcutter, de connaitre la version actuelle d’un gem et son nombre de téléchargements.

Et c’est ce que fait gem stats. Après l’avoir installé, si vous tapez

gem stats rails

Vous verrez la version la plus récente du gem ainsi que son nombre de téléchargements. Sympa :)

Mais ce dont je veux parler ici, c’est la manière dont ça fonctionne … Comment ajouter la commande « stats » à gem.
Il suffit pour cela d’utiliser Command Manager.

Dans le répertoire lib de votre gem, créez un fichier que vous nommerez rubygems_plugin.rb.
Puis dans ce fichier vous devrez déclarez la commande que vous souhaitez créer.

require 'rubygems/command_manager'
Gem::CommandManager.instance.register_command :neat

Maintenant il faut créer le code approprié à cette commande.
Pour cela, créer le fichier lib/rubygems/commands/neat_command.rb
Ou, bien évidemment « neat » est le nom de votre commande (déjà indiqué dans le register_command plus haut).

Puis déclarons la classe qui va bien avec cette commande.

class Gem::Commands::NeatCommand < Gem::Command
    def initialize
        super 'neat', 'A useless but particularly neat example command'
    end
    def arguments
        ''
    end
    def usage
        "#{program_name} #{arguments}"
    end

    def execute
        puts "Isn't my new gem plugin cool ?"
    end
end

Ayé, vous n’avez plus qu’à installer votre gem et votre nouvelle commande sera effective.
Ce n’est pas le sujet de cet article. Mais je vous invite fortement à utiliser jeweler pour compiler le gem.

Une fois que ceci est fait, vous pouvez tester votre nouvelle commande par vous même :

gem help neat
gem neat

Laisser une réponse

 
Fork me on GitHub