avro icon indicating copy to clipboard operation
avro copied to clipboard

avrogo generates non-idiomatic names

Open ojcm opened this issue 1 year ago • 3 comments

Names produced by avrogo do not follow idiomatic Go capitalisation/initialisation rules. (e.g. use ID rather than id or Id).

This can be reproduced with the following schema

{
    "name": "User",
    "type": "record",
    "fields": [
        {
            "name": "userID",
            "type": {
                "type": "string",
                "logicalType": "uuid"
            }
        }
    ]
}

avrogo generates

type User struct {
	Userid uuid.UUID `json:"userID"`
}

but an idiomatic representation would be

type User struct {
	UserID uuid.UUID `json:"userID"`
}

There are third-party libraries available to achieve this (e.g. github.com/hamba/avro uses github.com/ettle/strcase's PascalCase).

If this were implemented then it would be helpful to allow additional initialisms with command line arguments. For example in my use case I have schemas referring to MW (megawatts) and would like that initialised too.

I'm happy to work on this but I want to check if the change would be accepted before starting.

ojcm avatar Nov 29 '23 10:11 ojcm

Hello,

and thanks for the suggestion.

This is a reasonable request so please feel free to submit a PR One thing that should be done though is preserve the current behavior to avoid breaking changes. Maybe a flag can be introduced to specify which case to use?

skateinmars avatar Nov 30 '23 09:11 skateinmars

Hello, please could someone review the PR I opened?

ojcm avatar Jan 02 '24 09:01 ojcm

Hello @skateinmars. Do you think you would be able to review this PR please ?

defgenx avatar May 20 '24 14:05 defgenx