NAME
Fry::Opt - Class for shell options.
DESCRIPTION
Most option methods are called only when an option is set from the commandline. Such an option is called an active option. Near the end of each loop iteration, options along with other shell components are reset. &resetOptions is then called and depending on an option's attributes is reset.
An option object has the following attributes:
Attributes
with
a
'*'
next
to them are always
defined
.
*id
($): Unique id which is its name.
a($): Option alias.
tags($): Contains a value which modifies an option
's behavior. Only defined value is '
counter' which sets
an active option's stop value.
value($): Can contain an option
's value. Currently only options'
with
no
type store their value here.
*type
($): Indicates where an option gets/sets its value. Currently can be one of three: flag,var,none.
'none'
is the
default
.
A flag type syncs it value
with
a shell flag. A var type syncs its value
with
a
variable. A none type gets its value from the attribute value.
action(\&): Given subroutine is called
before
a command
for
an active option.
Subroutine is passed the shell object and the options' value set from the
commandline.
stop($): Maintains an option's value
for
$stop
+ 1 loop iterations where
$stop
is this attribute's value. This gives an active option a timed noreset interval. Used mostly
with
menu option.
noreset($): If set, the active option can't be
reset
(except
for
an overriding flag to
&resetOptions
).
*default
($): Default value that an option starts
with
and is set to whenever
reset
. Default value is 0.
PUBLIC METHODS
Opt(
$opt
): Returns an option's value.
findSetOptions(): Returns hash of options that differ from their
default
values
. Used
when
displaying the prompt.
resetOptions(): Iterates through all options and resets them according to attributes.
setOptions(
%opt_to_value
): Sets options to their
values
.
preParseCmd(
%opt_to_value
): Called
before
command execution
with
active
options and their
values
to
do
various things depending on an option's
attributes.
AUTHOR
Me. Gabriel that is. I welcome feedback and bug reports to cldwalker AT chwhat DOT com . If you like using perl,linux,vim and databases to make your life easier (not lazier ;) check out my website at www.chwhat.com.
COPYRIGHT & LICENSE
Copyright (c) 2004, Gabriel Horner. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.