
Keys.pudu
Pudu29 lines1.0 KB
1/** @Domain.Keys.Module — field names to environment variable names */2module PuduLangEnvironment.Domain.Keys34import Std.Char as Char5import PuduLangEnvironment.Constants.Names as Names6789export fn fromField(name: Str) -> Str {10 var pieces: Array[Str] = []11 var previous = ' '12 for symbol in name {13 if Char.isUpper(symbol) && (Char.isLower(previous) || Char.isDigit(previous)) { pieces = pieces.push("_") }14 pieces = pieces.push(Char.toUpper(symbol).toText())15 previous = symbol16 }17 pieces.join("")18}19202122export fn fromSetting(key: Str) -> Str {23 var pieces: Array[Str] = []24 for symbol in key {25 pieces = pieces.push(if Names.SETTING_SEPARATORS.contains(symbol) { "_" } else { Char.toUpper(symbol).toText() })26 }27 pieces.join("")28}29