Skip to content

Commit f868062

Browse files
authored
Merge pull request #192 from JuliaML/fix-camel-case
FIX: Use the `titlecase` function in (Upper) Camel Case
2 parents 5dc071f + 16b204c commit f868062

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

src/transforms/stdnames.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ end
8686

8787
_uppersnake(name) = _isuppersnake(name) ? name : join(uppercase.(split(name, DELIMS)), '_')
8888

89-
_uppercamel(name) = _isuppercamel(name) ? name : join(uppercasefirst.(split(name, DELIMS)))
89+
_uppercamel(name) = _isuppercamel(name) ? name : join(titlecase.(split(name, DELIMS)))
9090

9191
_upperflat(name) = _isupperflat(name) ? name : replace(uppercase(name), DELIMS => "")
9292

@@ -95,7 +95,7 @@ _snake(name) = _issnake(name) ? name : join(lowercase.(split(name, DELIMS)), '_'
9595
function _camel(name)
9696
_iscamel(name) && return name
9797
first, others... = split(name, DELIMS)
98-
join([lowercase(first); uppercasefirst.(others)])
98+
join([lowercase(first); titlecase.(others)])
9999
end
100100

101101
_flat(name) = _isflat(name) ? name : replace(lowercase(name), DELIMS => "")

test/transforms/stdnames.jl

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,21 @@
3838
tₒ = revert(T, n, c)
3939
@test t == tₒ
4040

41+
# titlecase
42+
names = Symbol.(["_apPLe trEe_", " baNaNA-fRuIt ", "-peAR\tsEEd-"])
43+
t = Table(; zip(names, columns)...)
44+
T = StdNames(:uppercamel)
45+
n, c = apply(T, t)
46+
@test Tables.schema(n).names == (:AppleTree, :BananaFruit, :PearSeed)
47+
tₒ = revert(T, n, c)
48+
@test t == tₒ
49+
50+
T = StdNames(:camel)
51+
n, c = apply(T, t)
52+
@test Tables.schema(n).names == (:appleTree, :bananaFruit, :pearSeed)
53+
tₒ = revert(T, n, c)
54+
@test t == tₒ
55+
4156
# internal functions
4257
names = ["apple banana", "apple\tbanana", "apple_banana", "apple-banana", "apple_Banana"]
4358
for name in names

0 commit comments

Comments
 (0)