Camel case and snake case: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (→{{header|Raku}}: Add a Raku example) |
Thundergnat (talk | contribs) m (→{{header|Raku}}: eat our own dog-food) |
||
Line 34: | Line 34: | ||
sub to_snake_case (Str $ |
sub to_snake_case (Str $snake_case_string is copy) { |
||
$ |
$snake_case_string.=trim; |
||
return $ |
return $snake_case_string if $snake_case_string.contains: / \s | '/' /; |
||
$ |
$snake_case_string.=subst: / <after <:Ll>> (<:Lu>|<:digit>+) /, {'_' ~ $0.lc}, :g; |
||
$ |
$snake_case_string.=subst: / <after <:digit>> (<:Lu>) /, {'_' ~ $0.lc}, :g; |
||
} |
} |
||
sub toCamelCase (Str $ |
sub toCamelCase (Str $camelCaseString is copy) { |
||
$ |
$camelCaseString.=trim; |
||
return $ |
return $camelCaseString if $camelCaseString.contains: / \s | '/' /; |
||
$ |
$camelCaseString.=subst: / ('_') (\w) /, {$1.uc}, :g; |
||
} |
} |
||
sub to-kebab-case (Str $ |
sub to-kebab-case (Str $kebab-case-string is copy) { |
||
$ |
$kebab-case-string.=trim; |
||
return $ |
return $kebab-case-string if $kebab-case-string.contains: / \s | '/' /; |
||
$ |
$kebab-case-string.=subst: / ('_') (\w) /, {'-' ~ $1.lc}, :g; |
||
$ |
$kebab-case-string.=subst: / <after <:Ll>> (<:Lu>|<:digit>+) /, {'-' ~ $0.lc}, :g; |
||
$ |
$kebab-case-string.=subst: / <after <:digit>> (<:Lu>) /, {'-' ~ $0.lc}, :g; |
||
} |
} |
||