Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0ceac3f

Browse files
committed
Add Phoenix.Naming.titleize/1
1 parent9fc21c6 commit0ceac3f

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

‎lib/phoenix/naming.ex‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,4 +129,34 @@ defmodule Phoenix.Naming do
129129

130130
bin|>String.replace("_"," ")|>String.capitalize
131131
end
132+
133+
@doc"""
134+
Converts an attribute/form field into its titleized version (all words capitalized).
135+
136+
## Examples
137+
138+
iex> Phoenix.Naming.titleize(:username)
139+
"Username"
140+
iex> Phoenix.Naming.titleize(:created_at)
141+
"Created At"
142+
iex> Phoenix.Naming.titleize("user_id")
143+
"User"
144+
145+
"""
146+
@spectitleize(atom|String.t)::String.t
147+
deftitleize(atom)whenis_atom(atom),
148+
do:titleize(Atom.to_string(atom))
149+
deftitleize(bin)whenis_binary(bin)do
150+
bin=
151+
ifString.ends_with?(bin,"_id")do
152+
binary_part(bin,0,byte_size(bin)-3)
153+
else
154+
bin
155+
end
156+
157+
bin
158+
|>String.replace("_"," ")
159+
|>String.split()
160+
|>Enum.map_join(" ",&String.capitalize/1)
161+
end
132162
end

‎test/phoenix/naming_test.exs‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,20 @@ defmodule Phoenix.NamingTest do
4242
assertNaming.camelize("_foo_bar",:lower)=="fooBar"
4343
assertNaming.camelize("foo_bar_1",:lower)=="fooBar1"
4444
end
45+
46+
test"humanize/1 converts atoms and strings to humanized form"do
47+
assertNaming.humanize(:username)=="Username"
48+
assertNaming.humanize(:created_at)=="Created at"
49+
assertNaming.humanize("user_id")=="User"
50+
assertNaming.humanize("foo_bar")=="Foo bar"
51+
assertNaming.humanize(:email_id)=="Email"
52+
end
53+
54+
test"titleize/1 converts atoms and strings to titleized form"do
55+
assertNaming.titleize(:username)=="Username"
56+
assertNaming.titleize(:created_at)=="Created At"
57+
assertNaming.titleize("user_id")=="User"
58+
assertNaming.titleize("foo_bar")=="Foo Bar"
59+
assertNaming.titleize(:email_id)=="Email"
60+
end
4561
end

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp