Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F5811006
xml_builder.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
xml_builder.ex
View Options
defmodule
Pleroma.XmlBuilder
do
def
to_xml
({
tag
,
attributes
,
content
})
do
open_tag
=
make_open_tag
(
tag
,
attributes
)
content_xml
=
to_xml
(
content
)
"<
#{
open_tag
}
>
#{
content_xml
}
</
#{
tag
}
>"
end
def
to_xml
({
tag
,
%{}
=
attributes
})
do
open_tag
=
make_open_tag
(
tag
,
attributes
)
"<
#{
open_tag
}
/>"
end
def
to_xml
({
tag
,
content
}),
do
:
to_xml
({
tag
,
%{},
content
})
def
to_xml
(
content
)
when
is_binary
(
content
)
do
to_string
(
content
)
end
def
to_xml
(
content
)
when
is_list
(
content
)
do
for
element
<-
content
do
to_xml
(
element
)
end
|>
Enum
.
join
()
end
def
to_xml
(%
NaiveDateTime
{}
=
time
)
do
NaiveDateTime
.
to_iso8601
(
time
)
end
def
to_doc
(
content
),
do
:
~s(<?xml version="1.0" encoding="UTF-8"?>)
<>
to_xml
(
content
)
defp
make_open_tag
(
tag
,
attributes
)
do
attributes_string
=
for
{
attribute
,
value
}
<-
attributes
do
"
#{
attribute
}
=\"
#{
value
}
\""
end
|>
Enum
.
join
(
" "
)
[
tag
,
attributes_string
]
|>
Enum
.
join
(
" "
)
|>
String
.
trim
()
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Thu, Aug 14, 3:28 AM (1 h, 51 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
270031
Default Alt Text
xml_builder.ex (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment