A class to facilitate optional keyword arguments. More specifically, it helps the use of a Hash to mimic the keyword argument system. With this, you can set default values and description to each keyword argument.
This is for your convenience. See the usage example below.
Suppose that you introduce keyword arguments "flag" and "number" to the method "hoge" in a class/module Foo. It can be done as follows:
require 'numru/misc' # or, specifically, require 'numru/misc/keywordopt' include NumRu class Foo @@opt_hoge = Misc::KeywordOpt.new( ['flag', false, 'whether or not ...'], ['number', 1, 'number of ...'], ['help', false, 'show help message'] ) def hoge(regular_arg1, regular_arg2, options=nil) opt = @@opt_hoge.interpret(options) if opt['help'] puts @@opt_hoge.help puts ' Current values='+opt.inspect raise Misc::HelpMessagingException, '** show help message and raise **' end # do what you want below # (options are set in the Hash opt: opt['flag'] and opt['number']) end end
Here, the options are defined in the class variable @@opt_hoge with option names, default values, and descriptions (for help messaging). One can use the method hoge as follows:
foo = Foo.new ... x = ... y = ... ... foo.hoge( x, y, {'flag'=>true, 'number'=>10} )
Or equivalently,
foo.hoge( x, y, 'flag'=>true, 'number'=>10 )
because '{}' can be omitted here.
Tails of options names can be shortened as long as unambiguous:
foo.hoge( x, y, 'fla'=>true, 'num'=>10 )
To show the help message, call
foo.hoge( x, y, 'help'=>true )
This will cause the following help message printed with the exception HelpMessagingException raised.
\** Description of options ** option name => default value (description), ..: { "flag" => false (whether or not ...), "number" => 1 (number of ...), "help" => false (show help message)} Current values={"help"=>true, "number"=>1, "flag"=>false} NumRu::Misc::HelpMessagingException: ** show help message and raise ** from (irb):78:in "hoge" from (irb):83
KeywordOpt.new( *args )
Constructor.
ARGUMENTS
RETURN VALUE
interpret(hash)
Interprets a hash that specifies option values.
ARGUMENTS
RETURN VALUE
POSSIBLE EXCEPTION
help
Returns a help message
RETURN VALUE