Skip to content

Commit 70f6696

Browse files
committed
Add Room-style configuration methods with backward compatibility
- Add schemaDirectory() and outputDirectory() methods matching Room plugin API - Maintain backward compatibility with existing schemaDir/outputDir properties - Mark old properties as @deprecated with replacement suggestions - New methods take precedence over property-based configuration - Update README.md to show recommended Room-style configuration
1 parent 181ec40 commit 70f6696

3 files changed

Lines changed: 30 additions & 8 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ refs. https://developer.android.com/training/data-storage/room/migrating-db-vers
4040
3. Configure the plugin in your `build.gradle.kts`:
4141
```kotlin
4242
roomSchemaDocs {
43-
schemaDir = "$projectDir/schemas"
44-
outputDir = "$projectDir/schemas-docs"
43+
schemaDirectory("$projectDir/schemas")
44+
outputDirectory("$projectDir/schemas-docs")
4545
}
4646
```
4747

plugin/src/main/kotlin/jp/ntsk/room/schema/docs/plugin/RoomSchemaDocsPlugin.kt

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ class RoomSchemaDocsPlugin : Plugin<Project> {
1616
description = "Generate Mermaid ER diagrams from Room schema JSON files."
1717

1818
doLast {
19-
val schemaDir = File(extension.schemaDir)
20-
val outputDir = File(extension.outputDir)
19+
val schemaDir = File(extension.resolveSchemaDir())
20+
val outputDir = File(extension.resolveOutputDir())
2121

2222
if (!schemaDir.exists()) {
23-
throw IllegalArgumentException("Schema directory does not exist: ${extension.schemaDir}")
23+
throw IllegalArgumentException("Schema directory does not exist: ${extension.resolveSchemaDir()}")
2424
}
2525

2626
if (!outputDir.exists()) {
@@ -35,7 +35,7 @@ class RoomSchemaDocsPlugin : Plugin<Project> {
3535
.toList()
3636

3737
if (jsonFiles.isEmpty()) {
38-
throw IllegalArgumentException("No schema files found in directory or subdirectories: ${extension.schemaDir}")
38+
throw IllegalArgumentException("No schema files found in directory or subdirectories: ${extension.resolveSchemaDir()}")
3939
}
4040

4141
jsonFiles
@@ -58,6 +58,28 @@ class RoomSchemaDocsPlugin : Plugin<Project> {
5858
}
5959

6060
open class RoomSchemaDocsExtension {
61+
@Deprecated("Use schemaDirectory() method instead", ReplaceWith("schemaDirectory(value)"))
6162
var schemaDir: String = "schemas"
63+
64+
@Deprecated("Use outputDirectory() method instead", ReplaceWith("outputDirectory(value)"))
6265
var outputDir: String = "docs"
66+
67+
private var schemaDirectoryValue: String? = null
68+
private var outputDirectoryValue: String? = null
69+
70+
fun schemaDirectory(path: String) {
71+
schemaDirectoryValue = path
72+
}
73+
74+
fun outputDirectory(path: String) {
75+
outputDirectoryValue = path
76+
}
77+
78+
internal fun resolveSchemaDir(): String {
79+
return schemaDirectoryValue ?: schemaDir
80+
}
81+
82+
internal fun resolveOutputDir(): String {
83+
return outputDirectoryValue ?: outputDir
84+
}
6385
}

sample/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,6 @@ room {
8989
}
9090

9191
roomSchemaDocs {
92-
schemaDir = "$projectDir/schemas"
93-
outputDir = "$projectDir/schemas-docs"
92+
schemaDirectory("$projectDir/schemas")
93+
outputDirectory("$projectDir/schemas-docs")
9494
}

0 commit comments

Comments
 (0)