return boolean options set

This commit is contained in:
Josh Holtrop 2013-01-20 22:54:06 -05:00
parent 56e644e16e
commit 056257b8f5
2 changed files with 36 additions and 4 deletions

View File

@ -17,11 +17,29 @@ module Yawpa
i = 0 i = 0
while i < params.length while i < params.length
param = params[i] param = params[i]
if param[0] != '-' if param =~ /^(-+)(.+)$/
args << params[i] case $1.length
when 2
param_key = if options[$2]
$2
elsif options[$2.to_sym]
$2.to_sym
else else
opt_config = options[param] || options[param.to_sym] nil
raise UnknownOptionException.new("Unknown option '#{param}'") if opt_config.nil? end
if param_key.nil?
raise UnknownOptionException.new("Unknown option '#{param}'")
end
opt_config = options[param_key]
nargs = opt_config[:nargs] || 0
if nargs == 0
opts[param_key] = true
elsif nargs.class == FixNum
elsif nargs.class == Range
end
end
else
args << params[i]
end end
i += 1 i += 1
end end

View File

@ -15,5 +15,19 @@ describe Yawpa do
params = ['one', '--option', 'two'] params = ['one', '--option', 'two']
expect { Yawpa.parse(params, options) }.to raise_error expect { Yawpa.parse(params, options) }.to raise_error
end end
it "returns boolean options which are set" do
options = {
one: {},
two: {},
three: {},
}
params = ['--one', 'arg', '--two', 'arg2']
opts, args = Yawpa.parse(params, options)
opts.include?(:one).should be_true
opts.include?(:two).should be_true
opts.include?(:three).should be_false
args.should eq(['arg', 'arg2'])
end
end end
end end