nameFromClass static method

String nameFromClass(
  1. String className
)

SignUpPlaybook, SignUp and sign-up all become sign_up.

Implementation

static String nameFromClass(String className) {
  String base = className.trim().replaceFirst(RegExp(r'^_+'), '');
  if (base.endsWith('Playbook') && base.length > 'Playbook'.length) {
    base = base.substring(0, base.length - 'Playbook'.length);
  }
  return base
      .replaceAllMapped(
        RegExp(r'([a-z0-9])([A-Z])'),
        (Match match) => '${match[1]}_${match[2]}',
      )
      .replaceAllMapped(
        RegExp(r'([A-Z]+)([A-Z][a-z])'),
        (Match match) => '${match[1]}_${match[2]}',
      )
      .replaceAll('-', '_')
      .toLowerCase();
}