Il est facile de créer l'application Ruby OS X - Création d'une structure comme ceci:Ruby fond OS X app
xxx.app
└── Contents
├── Info.plist
├── MacOS
│ └── xxx
└── Resources
└── xxx.icns
et mettre le code à exécuter dans xxx. Mais le temps de lancement est notable, donc je veux que cette application reste en arrière-plan et exécute une méthode, quand l'application est ouverte: donc quand je lance cette application pour la première fois, elle exécute le code et reste en arrière-plan. déjà en arrière-plan, donc il exécute simplement la méthode spécifiée.
minimale Info.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleExecutable</key>
<string>newTabHere</string>
<key>CFBundleIconFile</key>
<string>newTabHere</string>
<key>LSUIElement</key>
<true/><!-- hides icon from Dock -->
</dict>
</plist>
@tig Ceci est une excellente question/conseil en soi. Étant donné que vous avez placé xxx dans trois endroits et que vous dites "mettre du code à exécuter dans xxx", est-ce que vous avez besoin d'avoir la même chaîne pour les trois? – Phrogz
@Phrogz: Cette structure est standard pour les applications OS X, donc les noms des fichiers exécutables et icns sont spécifiés dans 'Info.plist' et ces noms peuvent être différents. J'ajouterai un contenu de 'Info.plist' minimal à la question. – tig
@Phrogz: A propos de ma question - il me semble que la création d'une telle application est une sorte de piratage, car l'icône de l'application rebondit dans Dock jusqu'à la fin du programme et l'ouverture de l'application avec un script long à l'intérieur. ne fait rien, donc il semble qu'il est difficile ou impossible de créer une boucle en cours d'exécution dans une telle application. Je pense que je devrais utiliser MacRuby si je veux créer une application OS X en utilisant ruby. – tig