toNaming method

String toNaming({
  1. NamingType type = NamingType.lowerCamel,
})

Converts string to other naming convention.

Such as:

  • 'hello world'.toNaming(type: NamingType.lowerCamel) => helloWorld
  • 'hello world'.toNaming(type: NamingType.upperCamel) => HelloWorld
  • 'hello world'.toNaming(type: NamingType.pascal) => HelloWorld
  • 'hello world'.toNaming(type: NamingType.lower) => hello_world
  • 'hello world'.toNaming(type: NamingType.lowerSnake) => hello_world
  • 'hello world'.toNaming(type: NamingType.upperSnake) => Hello_World
  • 'hello world'.toNaming(type: NamingType.kebab) => hello-world
  • 'hello world'.toNaming(type: NamingType.upper) => HELLO_WORLD

Implementation

String toNaming({NamingType type = NamingType.lowerCamel}) {
  final reg = RegExp(r'\s+');
  final str = replaceAll(reg, ' ');
  final list = str.split(' ');

  switch (type) {
    case NamingType.lowerCamel:
      return list.mapIndexed<String>((index, value) {
        if (index == 0) {
          return value.firstLower();
        }
        return value.firstUpper();
      }).join();
    case NamingType.upperCamel:
    case NamingType.pascal:
      return list.map<String>((value) => value.firstUpper()).join();
    case NamingType.lower:
    case NamingType.lowerSnake:
      return list.map<String>((value) => value.firstLower()).join('_');
    case NamingType.upperSnake:
      return list.map<String>((value) => value.firstUpper()).join('_');
    case NamingType.kebab:
      return list.map<String>((value) => value.firstLower()).join('-');
    case NamingType.upper:
      return list.map<String>((value) => value.toUpperCase()).join('_');
  }
}