node docsify documentation mogenerator

documentation - docsify - ¿Cómo funcionan los parámetros de Mogenerator, que puedo enviar a través de Xcode?



node js documentation generator (4)

La ayuda para Mogenerator es muy mínima. ¿Qué hacen todos los parámetros?


A partir de XCode 4, la ventana de información ya no está disponible, así que no te preocupes si no puedes configurarlo como se explicó anteriormente.

Use la guía de John Blanco para configurar un objetivo de scripting que le permita pasar argumentos de línea de comando directamente a mogenerator. Tenga en cuenta que podría tener que modificar ligeramente las rutas en su ejemplo ... lanzar un pwd en el script y verificar las rutas en el directorio de trabajo del script si no se ejecuta para usted de inmediato.

Para obtener una lista de los argumentos disponibles de la línea de comandos, ejecute mogenerator --help en el Terminal. AFAICT, todos ellos funcionan desde el paso de scripting.

Vea esta respuesta para otra forma de invocar mogenerator a través de una "acción previa" si desea reconstruir automáticamente los archivos de su máquina con cada compilación. También hay un buen consejo para poner una secuencia de comandos mogenerator en su VCS.


Además, tal vez será útil. Para determinar qué params se pueden usar para

--template-var KEY=VALUE

abra * .motemplate file, y encuentre una cadena como "TemplateVar". después del punto verá el nombre del parámetro y podrá entender lo que hace.

Este params tiene una plantilla incorporada

--template-var arc=true --template-var frc=true --template-var modules=true


Aquí está la salida de --help a partir de la versión 1.27

mogenerator: Usage [OPTIONS] <argument> [...] -m, --model MODEL Path to model -C, --configuration CONFIG Only consider entities included in the named configuration --base-class CLASS Custom base class --base-class-import TEXT Imports base class as #import TEXT --base-class-force CLASS Same as --base-class except will force all entities to have the specified base class. Even if a super entity exists --includem FILE Generate aggregate include file for .m files for both human and machine generated source files --includeh FILE Generate aggregate include file for .h files for human generated source files only --template-path PATH Path to templates (absolute or relative to model path) --template-group NAME Name of template group --template-var KEY=VALUE A key-value pair to pass to the template file. There can be many of these. -O, --output-dir DIR Output directory -M, --machine-dir DIR Output directory for machine files -H, --human-dir DIR Output directory for human files --list-source-files Only list model-related source files --orphaned Only list files whose entities no longer exist --version Display version and exit -h, --help Display this help and exit Implements generation gap codegen pattern for Core Data. Inspired by eogenerator.


Parámetros que funcionan tanto a través de la utilidad de línea de comandos como de Xcode:

  • --base-class : el nombre af de la clase base de la cual la "clase privada" (ej. _MyObject.h ) heredará. Esto también agregará una importación en forma de #import "MyManagedObject.h" al mismo archivo .h . Consejo: si la clase de la que desea heredar está ubicada en una biblioteca, la declaración de importación predeterminada no funcionará. Como solución alternativa, puede tener un nivel extra de herencia para cada proyecto que cree y que esa clase herede de la biblioteca (por ejemplo, establezca la clase base en MyProjectManagedObject que crea manualmente y hereda de MyLibManagedObject ).
  • --template-path : la ruta a donde se encuentran los 4 archivos .motemplate . Cuando esto no se proporciona, verá todos los "directorios de soporte de la aplicación" (por ejemplo, "/Library/Application Support/mogenerator/" ).
  • --template-group : un nombre de subdirectorio debajo del directorio de template-path para usar.
  • --template-var arc=true : requerido para que los archivos generados se compilen mientras se usa ARC.
  • --output-dir : el directorio de salida para todos los archivos generados.
  • --machine-dir : el directorio donde se mostrarán las _<class>.h y _<class>.m . Si --output-dir también está definido, este parámetro tiene prioridad.
  • --human-dir : el directorio donde se --human-dir las <class>.h y <class>.m . Si --output-dir también está definido, este parámetro tiene prioridad.
  • --includem : la ruta completa a un archivo que incluirá todas las #import de todos los archivos .h que se crean. Este archivo no necesita existir (es decir, se creará para usted si no lo hace). Este archivo no se incluirá automáticamente en el proyecto. Debe incluirlo manualmente arrastrándolo a la lista Grupos y archivos de su proyecto.

El uso de rutas relativas en Xcode para cualquiera de los argumentos anteriores no funcionará, ya que el directorio de trabajo está configurado en uno de los directorios raíz del sistema (por ejemplo, Aplicaciones, Desarrollador, Biblioteca o Sistema). (No he tenido tiempo suficiente para descubrir cuál de estos es exactamente).

Parámetros que no se pueden usar en Xcode:

  • --model : la ruta al archivo .xcdatamodel, no se puede establecer en Xcode.
  • --list-source-files
  • --orphaned
  • --versioned
  • --help

Ejecución y envío de parámetros a xmod a través de Xcode:

(Actualización: No he probado esto en Xcode 4, solo Xcode 3. Para Xcode 4, puede agregar mogenerator como una fase de compilación en lugar de seguir los siguientes pasos).

  1. Vaya a la página de .xcdatamodel archivo .xcdatamodel .
  2. Elija la pestaña Comentarios.
  3. Agregue xmod al campo de comentarios, en su propia línea.
  4. Cada vez que guarde el modelo, regenerará los archivos de la máquina por usted.

Para enviar parámetros, deben estar en su propia (s) línea (s):

Esto funciona:

xmod --base-class CLASS --template-path PATH

E incluso esto funciona:

xmod --base-class CLASS --template-path PATH

Pero, esto no funcionará:

xmod --base-class CLASS --template-path PATH

Nota: debe cerrar la ventana de información para que la configuración surta efecto.