En el primer escenario, tengo un script que contiene todos mis manejadores y fragmentos. El nombre de este script es "Jimz_Handlerz.scpt" y se encuentra aquí /Users/Smokestack/Library/script Librerías.
Llamar al manejador desde un nuevo archivo AppleScript requiere que declare mi biblioteca script (línea 1) y luego puedo llamar al manejador en cualquier momento que quiera con la segunda línea. Así:
use myHandlerz : script "Jimz_Handlerz.scpt"
myHandlerz's get_fileExtensions()
En el siguiente escenario, estoy utilizando el comando "load script" para cargar exactamente el mismo archivo que el primer ejemplo, pero este archivo se encuentra en el escritorio
property jimzHandlerz : load script ¬
(alias "Macintosh HD:Users:Smokestack:Desktop:Jimz_Handlerz.scpt")
jimzHandlerz's get_fileExtensions()
Este es el manejador real que contiene el comando que estoy llamando desde ambos escenarios diferentes..
on get_fileExtensions()
tell application "Finder"
set theDownloadsfolder to (path to downloads folder)
set theFiles to the name extension of every file of theDownloadsfolder
end tell
AST copy list theFiles without keeping duplicates -- Needs AppleScript Toolbox 2_0_8.osax Scripting Addition in /Users/"Name"/Library/ScriptingAdditions
end get_fileExtensions
Así que supongo que mi pregunta es, ¿hay situaciones en las que preferiría utilizar el escenario uno y otras en las que el escenario dos sería mejor?
Actualización:
Aquí hay una pequeña información interesante: Usando el escenario de llamar a los manejadores de una biblioteca script script o archivo de paquete script como en el primer ejemplo de mi pregunta original.. Si el script actual, que estamos llamando a un script externo desde una librería, es un bundle script e incluimos una carpeta dentro de la carpeta "Resources" llamada "script Libraries" que contiene el bundle script o script desde el que estamos llamando a nuestros manejadores externos, si el archivo en la carpeta del sistema "script Librerías" no puede ser encontrado, entonces este script no arrojará un error porque busca en la carpeta de recursos también las bibliotecas script.
1 votos
Voy a +1 sólo porque una respuesta autorizada estaría bien.
2 votos
Personalmente, guardo un par de archivos con mucho código que reutilizo, vía copiar y pegar, sin embargo, cada script/app que escribo prefiero que sea lo más autocontenido posible. En mi opinión, es mucho más fácil de mantener cuando está autocontenido y no necesito añadir código adicional para asegurarme de que las fuentes externas están disponibles, etc. Tampoco estoy escribiendo nada de tamaño donde veré un beneficio para que sea un escenario de varios archivos más allá de los archivos por defecto creados y un archivo .icns personalizado. Si escribo algo que dependa de un ejecutable de terceros, por ejemplo clic-clic, una copia del mismo va a la carpeta Resources.
0 votos
Creo que estoy de acuerdo con lo de copiar y pegar. Me estoy dando cuenta de que si ha pasado un tiempo desde que he mirado el script y llama a los manejadores de otro archivo, no tengo ni idea de cuáles son los comandos a menos que abra el segundo script para ver qué comando estoy llamando.