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:
mpeterv
2015-06-09 22:24:21 +03:00
parent 44fd3b3cb8
commit 85809c8ad4
4 changed files with 12 additions and 19 deletions

View File

@@ -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)

View File

@@ -31,19 +31,17 @@ 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]
A description.
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()

View File

@@ -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)

View File

@@ -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)