fix(entities): implement entities
This commit is contained in:
parent
6c5090d6fe
commit
bebe4a6901
|
@ -8,14 +8,22 @@ end
|
||||||
local record Function_Info
|
local record Function_Info
|
||||||
metamethod __call: function(Function_Info): Function_Info
|
metamethod __call: function(Function_Info): Function_Info
|
||||||
|
|
||||||
|
Function_Info: Function_Info
|
||||||
|
|
||||||
name: string
|
name: string
|
||||||
parameters: List<Parameter>
|
parameters: List<Parameter>
|
||||||
return_types: List<string>
|
return_types: List<string>
|
||||||
|
|
||||||
append_parameter: function(self: Function_Info, parameter: string)
|
append_parameter: function(self: Function_Info, name: string, type: string)
|
||||||
append_return_type: function(self: Function_Info, return_type: string)
|
append_return_type: function(self: Function_Info, return_type: string)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local __Function_Info: metatable<Function_Info> = {
|
||||||
|
__call = function(self: Function_Info): Function_Info
|
||||||
|
return self
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
function Function_Info:append_parameter(name: string, type: string)
|
function Function_Info:append_parameter(name: string, type: string)
|
||||||
self.parameters:append {
|
self.parameters:append {
|
||||||
name = name,
|
name = name,
|
||||||
|
@ -27,4 +35,4 @@ function Function_Info:append_return_type(return_type: string)
|
||||||
self.return_types:append(return_type)
|
self.return_types:append(return_type)
|
||||||
end
|
end
|
||||||
|
|
||||||
return Function_Info
|
return setmetatable({} as Function_Info, __Function_Info)
|
||||||
|
|
|
@ -4,9 +4,18 @@ local List = require "pl.List"
|
||||||
local record Module_Doc
|
local record Module_Doc
|
||||||
metamethod __call: function(Module_Doc): Module_Doc
|
metamethod __call: function(Module_Doc): Module_Doc
|
||||||
|
|
||||||
constructors: List<Function_Info>
|
Module_Doc: Module_Doc
|
||||||
methods: List<Function_Info>
|
|
||||||
static_functions: List<Function_Info>
|
constructors: List<Function_Info.Function_Info>
|
||||||
|
methods: List<Function_Info.Function_Info>
|
||||||
|
static_functions: List<Function_Info.Function_Info>
|
||||||
end
|
end
|
||||||
|
|
||||||
return Module_Doc
|
local __Module_Doc: metatable<Module_Doc> = {
|
||||||
|
__call = function(self: Module_Doc): Module_Doc
|
||||||
|
return self
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
return setmetatable({} as Module_Doc, __Module_Doc)
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,18 @@
|
||||||
local record Module_Info
|
local record Module_Info
|
||||||
metamethod __call: function(Module_Info, name: string, uri: string): Module_Info
|
metamethod __call: function(self: Module_Info, name: string, uri: string): Module_Info
|
||||||
|
|
||||||
|
Module_Info: Module_Info
|
||||||
|
|
||||||
name: string
|
name: string
|
||||||
uri: string
|
uri: string
|
||||||
end
|
end
|
||||||
|
|
||||||
return Module_Info
|
local __Module_Info: metatable<Module_Info> = {
|
||||||
|
__call = function(self: Module_Info, name: string, uri: string): Module_Info
|
||||||
|
self.name = name
|
||||||
|
self.uri = uri
|
||||||
|
return self
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
return setmetatable({} as Module_Info, __Module_Info)
|
||||||
|
|
|
@ -22,7 +22,7 @@ local function extract_function_return_types(function_return_types_node: scan.HT
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function extract_section_functions(dl: string): { Function_Info }
|
local function extract_section_functions(dl: string): { Function_Info.Function_Info }
|
||||||
local query_selectors = {
|
local query_selectors = {
|
||||||
function_name = "dt a",
|
function_name = "dt a",
|
||||||
function_return_type = "dd ol",
|
function_return_type = "dd ol",
|
||||||
|
@ -31,7 +31,7 @@ local function extract_section_functions(dl: string): { Function_Info }
|
||||||
return scraper_utils.scrape_tuples(
|
return scraper_utils.scrape_tuples(
|
||||||
dl,
|
dl,
|
||||||
{ query_selectors.function_name, query_selectors.function_return_type },
|
{ query_selectors.function_name, query_selectors.function_return_type },
|
||||||
function(nodes: { string : scan.HTMLNode | nil }): Function_Info
|
function(nodes: { string : scan.HTMLNode | nil }): Function_Info.Function_Info
|
||||||
local function_info = Function_Info()
|
local function_info = Function_Info()
|
||||||
|
|
||||||
function_info.name =
|
function_info.name =
|
||||||
|
@ -49,7 +49,7 @@ end
|
||||||
|
|
||||||
local module = {}
|
local module = {}
|
||||||
|
|
||||||
function module.get_doc_from_page(html: string): Module_Doc
|
function module.get_doc_from_page(html: string): Module_Doc.Module_Doc
|
||||||
local nodes = scraper_utils.extract_nodes(html, {
|
local nodes = scraper_utils.extract_nodes(html, {
|
||||||
"h2.section-header",
|
"h2.section-header",
|
||||||
"dl.function",
|
"dl.function",
|
||||||
|
|
|
@ -7,7 +7,7 @@ local module = {}
|
||||||
|
|
||||||
local MODULE_A_TAG_QUERY_SELECTOR = "div#navigation ul li a"
|
local MODULE_A_TAG_QUERY_SELECTOR = "div#navigation ul li a"
|
||||||
|
|
||||||
local function extract_module_info(node: scan.HTMLNode): Module_Info
|
local function extract_module_info(node: scan.HTMLNode): Module_Info.Module_Info
|
||||||
local name = utils.sanitize_string(node:inner_text())
|
local name = utils.sanitize_string(node:inner_text())
|
||||||
local uri = node.attr.href as string
|
local uri = node.attr.href as string
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ local function extract_module_info(node: scan.HTMLNode): Module_Info
|
||||||
return Module_Info(name, uri)
|
return Module_Info(name, uri)
|
||||||
end
|
end
|
||||||
|
|
||||||
function module.get_modules_from_index(html: string): { Module_Info }
|
function module.get_modules_from_index(html: string): { Module_Info.Module_Info }
|
||||||
return scraper_utils.scrape(
|
return scraper_utils.scrape(
|
||||||
html,
|
html,
|
||||||
MODULE_A_TAG_QUERY_SELECTOR,
|
MODULE_A_TAG_QUERY_SELECTOR,
|
||||||
|
|
Loading…
Reference in New Issue