Skip to content

Commit

Permalink
#44 file property key and filename fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex009 committed May 4, 2020
1 parent 3da5c95 commit b5e82e6
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ abstract class FilesGenerator(
override fun generate(resourcesGenerationDir: File): TypeSpec {
val fileSpecs = inputFileTree.map { file ->
FileSpec(
key = file.nameWithoutExtension,
key = processKey(file.nameWithoutExtension),
file = file
)
}.sortedBy { it.key }
Expand All @@ -38,31 +38,20 @@ abstract class FilesGenerator(
@Suppress("SpreadOperator")
classBuilder.addModifiers(*getClassModifiers())

keys.forEach {
classBuilder.addProperty(
generateFileProperty(
fileName = it.key,
fileExtension = it.file.extension
)
)
}
keys.forEach { classBuilder.addProperty(generateFileProperty(it)) }
return classBuilder.build()
}

override fun getImports(): List<ClassName> = emptyList()

private fun generateFileProperty(
fileName: String,
fileExtension: String
fileSpec: FileSpec
): PropertySpec {
@Suppress("SpreadOperator")
return PropertySpec.builder(processKey(fileName), resourceClass)
return PropertySpec.builder(fileSpec.key, resourceClass)
.addModifiers(*getPropertyModifiers())
.apply {
getPropertyInitializer(
fileName = fileName,
fileExtension = fileExtension
)?.let { initializer(it) }
getPropertyInitializer(fileSpec)?.let { initializer(it) }
}
.build()
}
Expand All @@ -81,7 +70,7 @@ abstract class FilesGenerator(

abstract fun getPropertyModifiers(): Array<KModifier>

abstract fun getPropertyInitializer(fileName: String, fileExtension: String): CodeBlock?
abstract fun getPropertyInitializer(fileSpec: FileSpec): CodeBlock?

data class FileSpec(
val key: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ class AndroidFilesGenerator(

override fun getPropertyModifiers(): Array<KModifier> = arrayOf(KModifier.ACTUAL)

override fun getPropertyInitializer(fileName: String, fileExtension: String): CodeBlock? {
return CodeBlock.of("FileResource(rawResId = R.raw.%L)", keyToResourceId(fileName))
override fun getPropertyInitializer(fileSpec: FileSpec): CodeBlock? {
return CodeBlock.of("FileResource(rawResId = R.raw.%L)", keyToResourceId(fileSpec.key))
}

override fun getImports(): List<ClassName> = listOf(
Expand All @@ -44,6 +44,6 @@ class AndroidFilesGenerator(
}

private fun keyToResourceId(key: String): String {
return key.replace("-", "_").toLowerCase(Locale.ROOT)
return key.toLowerCase(Locale.ROOT)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ class CommonFilesGenerator(

override fun getPropertyModifiers(): Array<KModifier> = emptyArray()

override fun getPropertyInitializer(fileName: String, fileExtension: String): CodeBlock? = null
override fun getPropertyInitializer(fileSpec: FileSpec): CodeBlock? = null
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ class IosFilesGenerator(

override fun getPropertyModifiers(): Array<KModifier> = arrayOf(KModifier.ACTUAL)

override fun getPropertyInitializer(fileName: String, fileExtension: String): CodeBlock? {
override fun getPropertyInitializer(fileSpec: FileSpec): CodeBlock? {
return CodeBlock.of(
"FileResource(fileName = %S, extension = %S,bundle = ${IosMRGenerator.BUNDLE_PROPERTY_NAME})",
fileName,
fileExtension
fileSpec.file.nameWithoutExtension,
fileSpec.file.extension
)
}

Expand Down

0 comments on commit b5e82e6

Please sign in to comment.