{"id":20950216,"url":"https://github.com/atsushi130/builderkit","last_synced_at":"2025-05-14T03:32:26.912Z","repository":{"id":57727735,"uuid":"107470282","full_name":"atsushi130/BuilderKit","owner":"atsushi130","description":"BuilderKit is test data builder auto generator.","archived":false,"fork":false,"pushed_at":"2018-01-31T07:32:49.000Z","size":57,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-08-17T11:38:17.767Z","etag":null,"topics":["autogenerate","kotlin","kotlinpoet","testdatabuilder"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atsushi130.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license-apache.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-18T22:32:20.000Z","updated_at":"2018-12-04T04:44:55.000Z","dependencies_parsed_at":"2022-08-30T06:01:23.011Z","dependency_job_id":null,"html_url":"https://github.com/atsushi130/BuilderKit","commit_stats":null,"previous_names":[],"tags_count":5,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsushi130%2FBuilderKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsushi130%2FBuilderKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsushi130%2FBuilderKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsushi130%2FBuilderKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atsushi130","download_url":"https://codeload.github.com/atsushi130/BuilderKit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225275711,"owners_count":17448387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autogenerate","kotlin","kotlinpoet","testdatabuilder"],"created_at":"2024-11-19T00:47:24.723Z","updated_at":"2024-11-19T00:47:25.346Z","avatar_url":"https://github.com/atsushi130.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BuilderKit\n\n[![apache licensed](https://img.shields.io/badge/License-Apache_2.0-d94c32.svg)](./license-apache.md)\n[![builderkit](https://img.shields.io/badge/Kotlin-BuilderKit-3B5998.svg)](https://github.com/atsushi130/BuilderKit.git)\n![kotlin](https://img.shields.io/badge/Language-Kotlin-f88909.svg)\n[![travis](https://travis-ci.org/atsushi130/BuilderKit.svg?branch=develop)](https://travis-ci.org/atsushi130/BuilderKit)\n[![Issues](https://img.shields.io/github/issues-raw/atsushi130/BuilderKit.svg)](https://github.com/atsushi130/BuilderKit/issues)\n[![Version](https://img.shields.io/maven-central/v/com.github.atsushi130/builderkit.svg)](https://search.maven.org/#search|gav|1|g%3A\"com.github.atsushi130\"%20AND%20a%3A\"builderkit\")\n\n## Usage\nImplement Generator class to `/generate/src/`.\n```kotlin\nclass Generator {\n    companion object {\n        @JvmStatic fun main(vararg args: String) {\n            BuilderGenerator.generates(ModelClass::class)\n        }\n    }\n}\n```\nBuilder class is automatically generated to `generate/src/` by default.\n\n## Output Builder class\n**Sample model class**\n```kotlin\ndata class ModelClass(val arg1: Int, val arg2: List\u003cString\u003e, val arg3: MyClass)\n```\n\n**Output builder class**\n```kotlin\nclass ModelClassBuilder(\n        private var arg1: Int,\n        private var arg2: List\u003cString\u003e,\n        private var arg3: MyClass\n) {\n    fun build() = ModelClass(this.arg1, this.arg2, this.arg3)\n\n    fun withArg1(arg1: Int): ModelClassBuilder {\n        this.arg1 = arg1\n        return this\n    }\n\n    fun withArg2(arg2: List\u003cString\u003e): ModelClassBuilder {\n        this.arg2 = arg2\n        return this\n    }\n\n    fun withArg3(arg3: MyClass): ModelClassBuilder {\n        this.arg3 = arg3\n        return this\n    }\n}\n```\n\n## Other Usage\n**Specify indent and output file path**\n```kotlin\nimport java.io.File\n\nclass Generator {\n    companion object {\n        @JvmStatic fun main(vararg args: String) {\n            val builder = BuilderGenerator(indent = \"\\t\", path = File(\"generate/src/\"))\n            builder.generates(ModelClass::class)\n        }\n    }\n}\n```\n\n## Dependency\n**Maven**\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.atsushi130\u003c/groupId\u003e\n    \u003cartifactId\u003ebuilderkit\u003c/artifactId\u003e\n    \u003cversion\u003e0.6.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n**Gradle**\n```gradle\ncompile 'com.github.atsushi130:builderkit:0.6.0'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatsushi130%2Fbuilderkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatsushi130%2Fbuilderkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatsushi130%2Fbuilderkit/lists"}