do
var pr = get_and_check("https://api.github.com/repos/privat/nit/pulls/{number}")
var prm = pr.json_as_map
- var sha = prm["head"].json_as_map["sha"]
+ var sha = prm["head"].json_as_map["sha"].to_s
var statuses = get_and_check("https://api.github.com/repos/privat/nit/statuses/{sha}")
prm["statuses"] = statuses
- print "{prm["title"]}: by {prm["user"].json_as_map["login"]} (# {prm["number"]})"
- print "\tmergable: {prm["mergeable"]}"
+ print "{prm["title"].to_s}: by {prm["user"].json_as_map["login"].to_s} (# {prm["number"].to_s})"
+ print "\tmergable: {prm["mergeable"].to_s}"
var st = prm["statuses"].json_as_a
if not st.is_empty then
- print "\tstatus: {st[0].json_as_map["state"]}"
+ print "\tstatus: {st[0].json_as_map["state"].to_s}"
else
print "\tstatus: not tested"
end
print "No public name for user {l}"
continue
end
- var r = "{u["name"]} <{u["email"]}>"
+ var r = "{u["name"].to_s} <{u["email"].to_s}>"
res.add r
end
var revs = curl.getrev(pr)
var mergemsg = new Template
- mergemsg.add "Merge: {pr["title"]}\n\n"
- mergemsg.add "{pr["body"]}\n\n"
- mergemsg.add "Pull-Request: #{pr["number"]}\n"
+ mergemsg.add "Merge: {pr["title"].to_s}\n\n"
+ mergemsg.add "{pr["body"].to_s}\n\n"
+ mergemsg.add "Pull-Request: #{pr["number"].to_s}\n"
for r in revs do
mergemsg.add "Reviewed-by: {r}\n"
end
# The project is of interest if it has lots of Java and at least some C
var may_be_of_interest = langs.has_lots_of_java and langs.has_some_c
- if may_be_of_interest then print "{item["name"]}: {item["forks"]}; {langs.keys.join(", ")}; {item["html_url"]}"
+ if may_be_of_interest then print "{item["name"].to_s}: {item["forks"].to_s}; {langs.keys.join(", ")}; {item["html_url"].to_s}"
end
# If we got less pages than asked for, we are done!
var s = new Socket.client(args[0], args[1].to_i)
print "[HOST ADDRESS] : {s.address}"
-print "[HOST] : {s.host}"
+print "[HOST] : {s.host or else "unamed"}"
print "[PORT] : {s.port}"
print "Connecting ... {s.connected}"
if s.connected then
var obj = response.body_str.json_to_nit_object
if obj isa HashMap[String, nullable Object] then
if obj.keys.has("message") then
- print "Message from Github API: {obj["message"]}"
+ print "Message from Github API: {obj["message"] or else ""}"
print "Requested URI: {uri}"
abort
end
return val.chars.first
end
- print "Malformed Json string: unexpected Json Object kind '{kind}'"
+ print "Malformed Json string: unexpected Json Object kind '{kind or else "null"}'"
abort
end
print "UNKNOWN EVENT {fs[1]} (on {l})"
res = true
input(new DummyQuitEvent)
+ return true
end
- print "WAIT {wait_next_input} for {next_input}"
+ print "WAIT {wait_next_input} for {next_input.to_s}"
end
end
end
fun pretty_default: String
do
var dv = default_value
- if dv != null then return " ({dv})"
+ if dv != null then return " ({dv.to_s})"
return ""
end
# Direct parent of this node (null if the node is root)
var parent: nullable SELF writable = null
- redef fun to_s do return "\{{value}\}"
+ redef fun to_s do return "\{{value or else ""}\}"
# Return dot representation of this node
# Used for debugging by `AbstractTree::show_dot`
end
end
- redef fun to_s do return "\{{key}: {value}\}"
+ redef fun to_s do return "\{{key}: {value or else ""}\}"
end
# libpng is not available on Android NDK
# FIXME make obtionnal when we have alternatives to mnit
var nit_dir = toolcontext.nit_dir
- var share_dir = "{nit_dir}/share/"
+ var share_dir = "{nit_dir or else ""}/share/"
if nit_dir == null or not share_dir.file_exists then
print "Android project error: Nit share directory not found, please use the environment variable NIT_DIR"
exit 1
var props = new Array[Streamable]
redef fun rendering do
+ var title = self.title
if title != null then add "<h1>{title}</h1>"
add "<div class='container-fluid'>"
add " <div class='row'>"
end
redef fun rendering do
+ var value = self.value
if value == null then
add(" {name}")
else
super HInfoBoxable
redef fun infobox(v)
do
+ var declared_type = self.declared_type
if declared_type == null then
var res = new HInfoBox(v, "{name}")
res.new_field("local var").append("{name}")
buf.append("<dt>project</dt>\n")
buf.append("<dd>{linkto(mproject)}</dd>\n")
buf.append("<dt>filepath</dt>\n")
- buf.append("<dd>{mgroup.filepath}</dd>\n")
+ buf.append("<dd>{mgroup.filepath.to_s}</dd>\n")
var p = mgroup.parent
if p != null then
buf.append("<dt>parent group</dt>\n")
redef fun display(a) do
if a isa MGroup then
- if a.parent == null then return "{a.mproject.name} ({a.filepath})"
+ if a.parent == null then return "{a.mproject.name} ({a.filepath.to_s})"
return a.name + " (group)"
else if a isa MModule then
return a.name
# Initially empty, modules can be added
var mmodules = new HashSet[MModule]
- private fun node_for(mmodule: MModule): nullable String
+ private fun node_for(mmodule: MModule): String
do
return "m_{mmodule.object_id}"
end
if mgroup.parent == null then
# is is a root group, so display the project
if project_group then
- o.write("subgraph cluster_{mgroup.object_id} \{\nlabel=\"{mgroup.mproject.name}\\n({mgroup.filepath})\"\ncolor=black\nstyle=dotted\n")
+ o.write("subgraph cluster_{mgroup.object_id} \{\nlabel=\"{mgroup.mproject.name}\\n({mgroup.filepath.to_s})\"\ncolor=black\nstyle=dotted\n")
end
else
if cluster_group then
end
print "[HOST ADDRESS] : {debug.address}"
-print "[HOST] : {debug.host}"
+print "[HOST] : {debug.host or else "unamed"}"
print "[PORT] : {debug.port}"
print "Connecting ... {debug.connected}"
if opt_paths then
return o.filepath.as(not null)
else
- return "{o.name} ({o.filepath})"
+ return "{o.name} ({o.filepath.to_s})"
end
else if o isa ModulePath then
if opt_paths then
if toolcontext.opt_noact.value then return
var nit_dir = toolcontext.nit_dir
- var nitg = "{nit_dir}/bin/nitg"
+ var nitg = "{nit_dir or else ""}/bin/nitg"
if nit_dir == null or not nitg.file_exists then
toolcontext.error(null, "Cannot find nitg. Set envvar NIT_DIR.")
toolcontext.check_errors
var d = new D(false, 'b', 123.123, 2345, "new line ->\n<-", null, 1111, "\t\f\"\r\\/")
d.d = d
-for o in new Array[nullable Serializable].with_items(a, b, c, d) do
+for o in new Array[Serializable].with_items(a, b, c, d) do
var stream = new StringOStream
var serializer = new JsonSerializer(stream)
serializer.serialize(o)
print "# Nit:\n{o}\n"
print "# Json:\n{stream}\n"
- print "# Back in Nit:\n{deserialized}\n"
+ print "# Back in Nit:\n{deserialized or else "null"}\n"
end
var d = new D(false, 'b', 123.123, 2345, "new line ->\n<-", null, 1111, "\t\f\"\r\\/")
d.d = d
-for o in new Array[nullable Serializable].with_items(a, b, c, d) do
+for o in new Array[Serializable].with_items(a, b, c, d) do
var stream = new StringOStream
var serializer = new JsonSerializer(stream)
serializer.serialize(o)