Fry::Opt - Class for shell options.
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.
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.
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 (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.