2010-11-27 5 views
1

Tout d'abord .. Je suis nouveau à Ruby et Capistrano. J'ai une tâche de déploiement où je dois trouver un mot de passe aléatoire, donc j'ai trouvé Haddock, qui fait l'affaire pour moi.Utiliser haddock avec Capistrano

https://github.com/stephencelis/haddock

J'ai installé la pierre précieuse, et a fait un exemple de script juste pour vous assurer que le bijou fonctionnait très bien. Le script est le suivant.

require "rubygems" 
require "haddock" 
include Haddock 


newpass = Password.generate 

print newpass 

Cela fait ce que j'attendais, il imprime une chaîne aléatoire. Maintenant, lorsque j'inclue les deux lignes require et include dans mon fichier Capfile, j'obtiens l'erreur suivante.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/capistrano-2.5.2/lib/capistrano/configuration/variables.rb:122: en method_missing': undefined method comprennent 'pour # (NoMethodError) de Capfile: 21: dans `charge'

on dirait que Ruby échoue sur un simple "comprend" maintenant ..

Répondre

3

Capistrano ne fonctionne pas comme deploy.rb N'importe quel autre script Ruby, il va load (ou eval, je ne sais pas lequel de ma tête) dans un contexte spécifique pour faire fonctionner DSL correctement. Cela signifie que certaines choses que vous attendez de travailler ne le seront pas. L'une de ces choses est apparemment include. Essayez de le supprimer et remplacez Password.generate par Haddock::Password.generate.

+0

Merci. ça a marché. –

+0

Bonne réponse, ne savait pas à ce sujet. –

+0

Une autre chose qui ne fonctionnera pas est de placer plus de directives de configuration Capistrano dans un fichier séparé et de l'exiger de votre 'deploy.rb'. Vous devez utiliser 'load' (c'est aussi la raison pour laquelle' Capfile' utilise 'load' et non' require' pour charger 'config/deploy.rb'). – Theo