From: Scott Baker Date: Fri, 26 Dec 2014 19:36:55 +0000 (-0800) Subject: model naming convention checker X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=7423a631820ebc5864d4b47388325e778d0ffda8;p=plstackapi.git model naming convention checker --- diff --git a/planetstack/apigen/style.template b/planetstack/apigen/style.template new file mode 100644 index 0000000..db80f55 --- /dev/null +++ b/planetstack/apigen/style.template @@ -0,0 +1,47 @@ +def is_camel_case(name): + for (i,char) in enumerate(name): + if (i>=1) and (name[i-1].islower()) and (char.isupper()): + return True + return False + +def is_missing_underscore(fieldName): + if (fieldName == "kuser_id"): + # this one is okay + return False + + {% for model in generator.all %} + pos = fieldName.find("{{ model }}") + if (pos > 0) and (fieldName[pos-1] != "_"): + return True + {% endfor %} + + return False + +def stylecheck_model_name(name): + if name.endswith("s"): + print "model '%s' name ends with 's'" % name + +def stylecheck_field_name(modelName, fieldName): + if is_camel_case(fieldName): + print "field '%s.%s' has camelcase" % (modelName, fieldName) + if is_missing_underscore(fieldName): + print "field '%s.%s' is missing underscore" % (modelName, fieldName) + +def stylecheck_field_plural(modelName, fieldName): + if is_camel_case(fieldName): + print "m2m field '%s.%s' has camelcase" % (modelName, fieldName) + if is_missing_underscore(fieldName): + print "m2m field '%s.%s' is missing underscore" % (modelName, fieldName) + +def main(): +{% for obj in generator.all %} + stylecheck_model_name("{{ obj.camel }}"); +{% for ref in obj.refs %} + stylecheck_field_plural("{{ obj.camel }}", "{{ ref.plural }}"); +{% endfor %} +{% for prop in obj.props %} + stylecheck_field_name("{{ obj.camel }}", "{{ prop }}"); +{% endfor %} +{% endfor %} + +main()