FileServer
action, which is a standard and minimal file server
HttpRequest
class and services to create it
Serializable::inspect
to show more useful information
more_collections :: more_collections
Highly specific, but useful, collections-related classes.serialization :: serialization_core
Abstract services to serialize Nit objects to different formatsdeserialize_json
and JsonDeserializer
serialize_to_json
and JsonSerializer
core :: union_find
union–find algorithm using an efficient disjoint-set data structure
module example_templates is example
import popcorn
import popcorn::pop_templates
class MyTemplateHandler
super Handler
# Template to render
var template = new TemplateString("""
<h1>Hello %USER%!</h1>
<p>Welcome to %MYSITE%.</p>
""")
redef fun get(req, res) do
# Values to add in the template
var values = new HashMap[String, String]
values["USER"] = "Morriar"
values["MYSITE"] = "My super website"
# Render it
res.template(template, values)
end
end
class MyTemplateStringHandler
super Handler
redef fun get(req, res) do
# Values to add in the template
var values = new HashMap[String, String]
values["USER"] = "Morriar"
values["MYSITE"] = "My super website"
# Render it with a shortcut
res.template_string("""
<h1>Hello %USER%!</h1>
<p>Welcome to %MYSITE%.</p>
""", values)
end
end
class MyTemplateFileHandler
super Handler
# Use template from external file
var tpl_file = "example_template.tpl"
redef fun get(req, res) do
# Values to add in the template
var values = new HashMap[String, String]
values["USER"] = "Morriar"
values["MYSITE"] = "My super website"
# Render it from an external file
res.template_file(tpl_file, values)
end
end
class MyTemplatePugHandler
super Handler
redef fun get(req, res) do
# Values to add in the template
var json = new JsonObject
json["user"] = "Morriar"
json["mysite"] = "My super website"
res.pug("""
h1 Hello #{user}
p Welcome to #{mysite}
""", json)
end
end
class MyTemplatePugFileHandler
super Handler
# Use template from external file
var pug_file = "example_template.pug"
redef fun get(req, res) do
# Values to add in the template
var json = new JsonObject
json["user"] = "Morriar"
json["mysite"] = "My super website"
# Render it from an external file
res.pug_file(pug_file, json)
end
end
var app = new App
app.use("/", new MyTemplateHandler)
app.use("/string", new MyTemplateStringHandler)
app.use("/file", new MyTemplateFileHandler)
app.use("/pug", new MyTemplatePugHandler)
app.use("/pug_file", new MyTemplatePugFileHandler)
app.listen("localhost", 3000)
lib/popcorn/examples/templates/example_templates.nit:17,1--115,29