feat: add merge_all_wren utility, strutil demo, and 7 new API manual pages
Add WrenFileReader class in apps/merge_all_wren.wren for recursive .wren file discovery and content printing. Introduce example/strutil_demo.wren demonstrating case conversion, hex encoding, SHA256 hashing, string repetition, padding, HTML/JSON escaping, and URL encoding/decoding. Create manual/api pages for argparse, dataset, html, markdown, uuid, wdantic, and web modules. Update manual/api/index.html sidebar and module count from 21 to 28, adding links and cards for the new modules.
This commit is contained in:
Vendored
+58
@@ -0,0 +1,58 @@
|
||||
// retoor <retoor@molodetz.nl>
|
||||
|
||||
import "web" for View, Response, Request
|
||||
|
||||
class TestView is View {
|
||||
construct new() {}
|
||||
|
||||
get(request) {
|
||||
return Response.json({"method": "GET"})
|
||||
}
|
||||
|
||||
post(request) {
|
||||
return Response.json({"method": "POST"})
|
||||
}
|
||||
|
||||
put(request) {
|
||||
return Response.json({"method": "PUT"})
|
||||
}
|
||||
|
||||
delete(request) {
|
||||
return Response.json({"method": "DELETE"})
|
||||
}
|
||||
}
|
||||
|
||||
class GetOnlyView is View {
|
||||
construct new() {}
|
||||
|
||||
get(request) {
|
||||
return Response.text("GET only")
|
||||
}
|
||||
}
|
||||
|
||||
var mockGet = Request.new_("GET", "/test", {}, {}, "", {}, null)
|
||||
var mockPost = Request.new_("POST", "/test", {}, {}, "", {}, null)
|
||||
var mockPut = Request.new_("PUT", "/test", {}, {}, "", {}, null)
|
||||
var mockDelete = Request.new_("DELETE", "/test", {}, {}, "", {}, null)
|
||||
var mockPatch = Request.new_("PATCH", "/test", {}, {}, "", {}, null)
|
||||
|
||||
var view = TestView.new()
|
||||
|
||||
var r1 = view.dispatch(mockGet)
|
||||
System.print(r1.body.contains("GET")) // expect: true
|
||||
|
||||
var r2 = view.dispatch(mockPost)
|
||||
System.print(r2.body.contains("POST")) // expect: true
|
||||
|
||||
var r3 = view.dispatch(mockPut)
|
||||
System.print(r3.body.contains("PUT")) // expect: true
|
||||
|
||||
var r4 = view.dispatch(mockDelete)
|
||||
System.print(r4.body.contains("DELETE")) // expect: true
|
||||
|
||||
var getOnlyView = GetOnlyView.new()
|
||||
var r5 = getOnlyView.dispatch(mockGet)
|
||||
System.print(r5.body) // expect: GET only
|
||||
|
||||
var r6 = getOnlyView.dispatch(mockPost)
|
||||
System.print(r6.status) // expect: 405
|
||||
Reference in New Issue
Block a user