override def apply()

in scrooge-generator/src/main/scala/com/twitter/scrooge/swift_generator/SwiftGenerator.scala [169:245]


  override def apply(
    serviceOptions: Set[ServiceOption],
    outputPath: File,
    dryRun: Boolean = false,
    genAdapt: Boolean = false
  ): Iterable[File] = {
    val generatedFiles = new mutable.ListBuffer[File]
    val packageDir = namespacedFolder(outputPath, namespace.fullName, dryRun)
    val sourceDir = namespacedFolder(packageDir, "Sources/" + namespace.fullName, dryRun)

    def renderFile(
      templateName: String,
      controller: TypeController,
      fileName: Option[String] = None
    ) = {
      val dir = if (templateName == "package_file.mustache") packageDir else sourceDir
      val fileContent = renderMustache(templateName, controller)
      val name = fileName.getOrElse(controller.name)
      val file = new File(dir, name + ".swift")
      if (!dryRun) {
        val writer = new FileWriter(file)
        try {
          writer.write(fileContent)
        } finally {
          writer.close()
        }
      }
      file
    }

    if (doc.consts.nonEmpty) {
      generatedFiles += renderFile(
        "consts.mustache",
        new ConstController(
          doc.consts,
          this,
          Some(namespace),
          public_interface = publicInterface
        )
      )
    }

    generatedFiles += renderFile(
      "package_file.mustache",
      new PackageFileController(doc.consts, this, Some(namespace))
    )

    doc.enums.foreach { enum =>
      generatedFiles += renderFile(
        "enum.mustache",
        new EnumController(
          enum,
          this,
          Some(namespace),
          objcPrefix = objcPrefix,
          public_interface = publicInterface),
        enum.annotations.get("alternative.type")
      )
    }

    doc.structs.foreach { struct =>
      generatedFiles += renderFile(
        "struct.mustache",
        new StructController(
          struct,
          false,
          this,
          Some(namespace),
          objcPrefix = objcPrefix,
          use_classes = generateClasses,
          public_interface = publicInterface),
        struct.annotations.get("alternative.type")
      )
    }

    generatedFiles
  }