From fd8efa0b2af8ece0d4ba50c25505ea4f66a09d9a Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Thu, 12 Jul 2018 19:33:24 +0200 Subject: [PATCH] Always generate db tag (either from dbname or name) --- sam/_gen.php | 10 ++++++++++ sam/templates/http_structs.tpl | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sam/_gen.php b/sam/_gen.php index e62ae38e1..f62a58b4b 100644 --- a/sam/_gen.php +++ b/sam/_gen.php @@ -81,3 +81,13 @@ foreach (array("routes") as $type) { file_put_contents($filename, $contents); } + +// camel case to snake case +function decamel($input) { + preg_match_all('!([A-Z][A-Z0-9]*(?=$|[A-Z][a-z0-9])|[A-Za-z][a-z0-9]+)!', $input, $matches); + $ret = $matches[0]; + foreach ($ret as &$match) { + $match = $match == strtoupper($match) ? strtolower($match) : lcfirst($match); + } + return implode('_', $ret); +} diff --git a/sam/templates/http_structs.tpl b/sam/templates/http_structs.tpl index 934551e00..8b4fd7f9a 100644 --- a/sam/templates/http_structs.tpl +++ b/sam/templates/http_structs.tpl @@ -20,7 +20,7 @@ type ({foreach $structs as $struct} // {api.title} {struct.name} struct { {foreach $struct.fields as $field} - {field.name} {field.type}{if $field.tag || $field.dbname} `{$field.tag}{if $field.dbname} db:"{$field.dbname}"{/if}`{/if}{newline} + {field.name} {field.type} `{if $field.tag}{$field.tag} {/if}db:"{if $field.dbname}{$field.dbname}{else}{$field.name|decamel}{/if}"`{newline} {/foreach} changed []string