2010-12-15 74 views
1

J'essaye de conditionner mon application Ruby en tant que RubyGem (en utilisant Jeweler and Rake). J'ai une source C que j'ai besoin de construire sur la machine cible où la gemme doit être installée et ensuite placer la sortie dans le répertoire bin de la gemme pour que mon code ruby ​​puisse l'utiliser.Construire des fichiers C dans mon RubyGem

Y at-il un crochet par lequel je peux exécuter des commandes lors de l'installation de la gemme?

Un extrait de mon Rakefile ressemble à ceci:

task :install do 
    puts "Install" 
    `touch /tmp/install` 
end 

task :build do 
    puts "Build" 
    `touch /tmp/build` 
end 

Lorsque j'exécute rake build il sort Build et quand j'exécute rake install la sortie est suivie par BuildInstall. Le problème vient quand je fais gem install alors la tâche install n'est pas appelée.

Répondre

2

Vous avez besoin des extensions gemspec:

http://docs.rubygems.org/read/chapter/20#extensions

Fondamentalement, vous pouvez exécuter un code Ruby que vous aimez quand le bijou est installé.

+0

Parfait! Mais il semble qu'il a besoin d'un fichier 'extconf.rb' et qui devrait aboutir à un' Makefile' dans ce répertoire. – arrac