constructor

command module
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 26, 2025 License: MIT Imports: 9 Imported by: 0

README

Constructor

Constructor is a small utility CLI tool that generates a constructor for a new struct in Go. The constructor that is created is heavily opinionated and designed to work with the functional options pattern to allow for a flexible and expressive API.

As an added bonus, constructor is also able to generate tests for the constructor it creates, with complete coverage.

Installation

To install Constructor, run the following command:

go get -u github.com/MadsRC/constructor

Usage

To generate a constructor for a new struct, run the following command:

constructor --name MyStruct --package mypackage

This will print the constructor to the console. If you want to write the constructor to a file, you can use the --output flag:

constructor --name MyStruct --package mypackage --output mystruct_constructor.go

To generate tests for the constructor, use the --test flag:

constructor --name MyStruct --package mypackage --test

Build

This project uses mise to manage dev tools, environments and tasks. To build the project, run the following command:

mise run build

This will result in a binary being created in the dist/ directory.

Alternatively, you can create a development/debug build by running:

mise run build --dev

This will create a binary with debug information.

Testing

Acceptance tests

The acceptance test suite is written as a separate GoLang module in the tests/acceptance directory. To run the acceptance tests, you need to have a constructor binary built and available.

To run the acceptance tests, run the following command:

mise run test:acceptance dist/constructor

The arguments passed here is the path to the constructor binary.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL