From d1386c1d9674dc82178edfb0185290cd9b468be7 Mon Sep 17 00:00:00 2001 From: mpeterv Date: Thu, 24 Apr 2014 21:16:06 +0400 Subject: [PATCH] Add brackets to argname automatically Updated aux files --- .travis.yml | 5 ++-- .travis_setup.sh | 12 ++++----- ...git-1.rockspec => argparse-scm-1.rockspec} | 2 +- spec/usage_spec.lua | 4 +-- src/argparse.lua | 26 ++++++++++--------- 5 files changed, 25 insertions(+), 24 deletions(-) rename rockspecs/{argparse-git-1.rockspec => argparse-scm-1.rockspec} (97%) diff --git a/.travis.yml b/.travis.yml index 20d22fd..7ae132e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,8 @@ before_install: - bash .travis_setup.sh install: - - sudo luarocks make rockspecs/argparse-git-1.rockspec + - sudo luarocks make rockspecs/argparse-scm-1.rockspec - sudo luarocks install busted -script: "busted spec" +script: + - busted spec diff --git a/.travis_setup.sh b/.travis_setup.sh index b9d7247..a8a8d9b 100644 --- a/.travis_setup.sh +++ b/.travis_setup.sh @@ -5,8 +5,7 @@ if [ "$LUA" == "LuaJIT 2.0" ]; then curl http://luajit.org/download/LuaJIT-2.0.2.tar.gz | tar xz cd LuaJIT-2.0.2 - make && sudo make install INSTALL_TSYMNAME=lua - cd ..; + make && sudo make install INSTALL_TSYMNAME=lua; else if [ "$LUA" == "Lua 5.1" ]; then curl http://www.lua.org/ftp/lua-5.1.5.tar.gz | tar xz @@ -15,13 +14,12 @@ else curl http://www.lua.org/ftp/lua-5.2.3.tar.gz | tar xz cd lua-5.2.3; fi - - sudo make linux install - cd ..; + sudo make linux install; fi -curl http://luarocks.org/releases/luarocks-2.1.1.tar.gz | tar xz -cd luarocks-2.1.1 +cd .. +curl http://luarocks.org/releases/luarocks-2.1.2.tar.gz | tar xz +cd luarocks-2.1.2 if [ "$LUA" == "LuaJIT 2.0" ]; then ./configure --with-lua-include=/usr/local/include/luajit-2.0; diff --git a/rockspecs/argparse-git-1.rockspec b/rockspecs/argparse-scm-1.rockspec similarity index 97% rename from rockspecs/argparse-git-1.rockspec rename to rockspecs/argparse-scm-1.rockspec index 5548c77..bd91a58 100644 --- a/rockspecs/argparse-git-1.rockspec +++ b/rockspecs/argparse-scm-1.rockspec @@ -1,5 +1,5 @@ package = "argparse" -version = "git-1" +version = "scm-1" source = { url = "git://github.com/mpeterv/argparse.git" } diff --git a/spec/usage_spec.lua b/spec/usage_spec.lua index dbffcbe..80cb2ce 100644 --- a/spec/usage_spec.lua +++ b/spec/usage_spec.lua @@ -136,7 +136,7 @@ describe("tests related to usage message generation", function() :add_help(false) parser:argument "inputs" :args "1-2" - :argname "" + :argname "input" assert.equal( [=[Usage: foo []]=], @@ -150,7 +150,7 @@ describe("tests related to usage message generation", function() parser:option "--pair" :args(2) :count "*" - :argname{"", ""} + :argname{"key", "value"} assert.equal( [=[Usage: foo [--pair ]]=], diff --git a/src/argparse.lua b/src/argparse.lua index cb73826..86fa918 100644 --- a/src/argparse.lua +++ b/src/argparse.lua @@ -31,7 +31,7 @@ do -- Create classes with setters self._name = name_or_options end elseif type(name_or_options) == "table" then - for field, setter in pairs(fields) do + for field in pairs(fields) do if name_or_options[field] ~= nil then self[field](self, name_or_options[field]) end @@ -229,7 +229,7 @@ function Argument:_get_argument_list() local i = 1 while i <= math.min(self._minargs, 3) do - local argname = self:_get_argname_i(i) + local argname = self:_get_argname(i) if self._default and self._defmode:find "a" then argname = "[" .. argname .. "]" @@ -240,7 +240,7 @@ function Argument:_get_argument_list() end while i <= math.min(self._maxargs, 3) do - table.insert(buf, "[" .. self:_get_argname_i(i) .. "]") + table.insert(buf, "[" .. self:_get_argname(i) .. "]") i = i+1 if self._maxargs == math.huge then @@ -287,24 +287,26 @@ function Argument:_get_type() end end -function Argument:_get_argname_i(i) - local argname = self:_get_argname() +-- Returns placeholder for `narg`-th argument. +function Argument:_get_argname(narg) + local argname = self._argname or self:_get_default_argname() if type(argname) == "table" then - return argname[i] + return "<" .. argname[narg] .. ">" else - return argname + return "<" .. argname .. ">" end end -function Argument:_get_argname() - return self._argname or ("<"..self._name..">") +function Argument:_get_default_argname() + return self._name end -function Option:_get_argname() - return self._argname or ("<"..self:_get_target()..">") +function Option:_get_default_argname() + return self:_get_target() end +-- Returns label to be shown in the help message. function Argument:_get_label() return self._name end @@ -954,7 +956,7 @@ end function Parser:pparse(args) local errmsg local ok, result = pcall(function() - return self:_parse(args, function(parser, err) + return self:_parse(args, function(_, err) errmsg = err return error() end)