mirror of
https://github.com/TangentFoxy/argparse.git
synced 2025-07-28 11:02:20 +00:00
Reorder properties
Move more common properties to the front of property lists, so that they can be passed as constructor arguments. E.g. parser:option "-p" "--port" :description "Port number." :default "8080" :convert(tonumber) can now be expressed as parser:option("-p --port", "Port number.", "8080", tonumber)
This commit is contained in:
@@ -60,10 +60,7 @@ describe("tests related to default values", function()
|
||||
|
||||
it("handles option with default value for multi-argument option correctly", function()
|
||||
local parser = Parser()
|
||||
parser:option "-s" "--several" {
|
||||
default = "foo",
|
||||
args = "2-3"
|
||||
}
|
||||
parser:option("-s --several", "Two or three things", "foo", nil, "2-3")
|
||||
local args = parser:parse{}
|
||||
assert.same({several = {"foo", "foo"}}, args)
|
||||
end)
|
||||
|
@@ -31,9 +31,7 @@ Options:
|
||||
end)
|
||||
|
||||
it("uses description and epilog", function()
|
||||
local parser = Parser "foo"
|
||||
:description "A description. "
|
||||
:epilog "An epilog. "
|
||||
local parser = Parser("foo", "A description.", "An epilog.")
|
||||
|
||||
assert.equal([[
|
||||
Usage: foo [-h]
|
||||
@@ -43,7 +41,7 @@ A description.
|
||||
Options:
|
||||
-h, --help Show this help message and exit.
|
||||
|
||||
An epilog. ]], parser:get_help())
|
||||
An epilog.]], parser:get_help())
|
||||
end)
|
||||
|
||||
it("creates correct help message for arguments", function()
|
||||
|
@@ -152,9 +152,7 @@ describe("tests related to options", function()
|
||||
describe("Options with optional argument", function()
|
||||
it("handles emptiness correctly", function()
|
||||
local parser = Parser()
|
||||
parser:option "-p" "--password" {
|
||||
args = "?"
|
||||
}
|
||||
parser:option("-p --password", "Secure password for special security", nil, nil, "?")
|
||||
local args = parser:parse({})
|
||||
assert.same({}, args)
|
||||
end)
|
||||
|
@@ -218,13 +218,13 @@ local Argument = new_class({
|
||||
}, {
|
||||
typechecked("name", "string"),
|
||||
typechecked("description", "string"),
|
||||
typechecked("target", "string"),
|
||||
boundaries("args"),
|
||||
typechecked("default", "string"),
|
||||
typechecked("convert", "function", "table"),
|
||||
boundaries("args"),
|
||||
typechecked("target", "string"),
|
||||
typechecked("defmode", "string"),
|
||||
typechecked("show_default", "boolean"),
|
||||
typechecked("argname", "string", "table"),
|
||||
typechecked("convert", "function", "table")
|
||||
typechecked("argname", "string", "table")
|
||||
})
|
||||
|
||||
local Option = new_class({
|
||||
@@ -234,15 +234,15 @@ local Option = new_class({
|
||||
}, {
|
||||
multiname,
|
||||
typechecked("description", "string"),
|
||||
typechecked("target", "string"),
|
||||
typechecked("default", "string"),
|
||||
typechecked("convert", "function", "table"),
|
||||
boundaries("args"),
|
||||
boundaries("count"),
|
||||
typechecked("default", "string"),
|
||||
typechecked("target", "string"),
|
||||
typechecked("defmode", "string"),
|
||||
typechecked("show_default", "boolean"),
|
||||
typechecked("overwrite", "boolean"),
|
||||
typechecked("argname", "string", "table"),
|
||||
typechecked("convert", "function", "table"),
|
||||
typechecked("action", "function")
|
||||
}, Argument)
|
||||
|
||||
|
Reference in New Issue
Block a user