2016-04-12 11 views
0

Ich habe eine Frage zu ruby ​​/ Koch, ich ein Rezept bin zu schaffen, wird das Setup ein Cron-Job, sobald wir Koch-Client der Knoten, und ich bin ein Syntaxfehler bekommen, wenn ich meine Küche TestEinstellung Cron Koch mit

laufen

der folgende Code-Block ist ein Teil meines Rezepts

action node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["enabled"] = ? :create : :delete 
    minute node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["minute"] 
    hour node["hadoop_temp"]["scripts"]["cron"]["clean_teamp"]["hour"] 
    day node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["day"] 
    month node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["month"] 
    weekday node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["weekday"] 

der folgende Block eines Teil meiner Attribute ist.

#Run the cron every day at 12AM cleans /temp 
    default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["enabled"] = false 
    default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["minute"] = "0" 
    default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["hour"] = "0" 
    default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["day"] = "*" 
    default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["month"] = "*" 
    default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["weekday"] = "*" 

Wenn ich meinen Küchentest starte, erhalte ich den folgenden Fehler. Ich habe löschen Ich will nur das Attribut auf true wechseln

SyntaxError 
    ----------- 
    /tmp/kitchen/cache/cookbooks/hadoop_temp/recipes/clean_temp.rb:25: syntax error, unexpected '?' 
    ..."hadoop_temp"]["enabled"] = ? :create : :delete 

ich in Ruby versteht boolean 100% nicht, was ich bewerkstelligen will, wenn der Eintrag erstellen existieren, aber wenn in der Zukunft.

+1

Entfernen Sie die '=' Zeichen übergeben @StephenKing. – StephenKing

+0

Sie könnten [lernen über den ternären Operator in Ruby] (http://stackoverflow.com/questions/4252936/how-doi-i-use-the-conditional-operator-in-ruby). – StephenKing

+0

Vielen Dank @StephenKing mein Test bestanden! das war einfach! –

Antwort

0

Sie über den ternären Operator in Ruby lernen konnte learn about the ternary operator in ruby

Ich habe die = aus dem Rezept Aktion unterzeichnen nahm. Jetzt sieht es so aus:

action node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["enabled"] ? :create : :delete 

Vielen Dank für den Test