in Generator/Sources/NeedleFramework/Generating/Serializers/Pluginized/PluginExtensionContentSerializer.swift [34:54]
func serialize() -> String {
let processedProperties = component.pluginExtension.properties.map { property in
ProcessedProperty(unprocessed: property, sourceComponentType: component.nonCoreComponent.name)
}
let properties = PropertiesSerializer(processedProperties: processedProperties).serialize()
let extensionClassName = PluginExtensionClassNameSerializer(component: component).serialize()
let pluginziedComponentPropertyName = component.data.name.lowercasedFirstChar()
let nonCoreComponentPropertyName = component.nonCoreComponent.name.lowercasedFirstChar()
return """
/// \(component.data.name) plugin extension
private class \(extensionClassName): \(component.pluginExtension.name) {
\(properties)
private unowned let \(nonCoreComponentPropertyName): \(component.nonCoreComponent.name)
init(component: NeedleFoundation.Scope) {
let \(pluginziedComponentPropertyName) = component as! \(component.data.name)
\(nonCoreComponentPropertyName) = \(pluginziedComponentPropertyName).nonCoreComponent as! \(component.nonCoreComponent.name)
}
}\n
"""
}