module NumRu
Index¶ ↑
-
((<class NumRu::Misc::KeywordOpt>))
-
((<class NumRu::Misc::KeywordOptAutoHelp < NumRu::Misc::KeywordOpt>))
class NumRu::Misc::KeywordOpt¶ ↑
Overview¶ ↑
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.
Classes defined supplementarilly¶ ↑
class NumRu::Misc::HelpMessagingException < StandardError¶ ↑
This is for your convenience. See the usage example below.
Usage example¶ ↑
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: ** help messaging done ** from (irb):78:in "hoge" from (irb):83
Do not affraid to write long descriptions. The help method
breaks lines nicely if they are long.
Class methods¶ ↑
module NumRu::Misc::MD_Iterators¶ ↑
A Mixin. To be included in a class with multi-dimension indexing support (such as NArray).
Index¶ ↑
-
((<each_subary_at_dims>))
-
((<each_subary_at_dims_with_index>))