-
-
08 May 2022 15:10:12 UTC
- Distribution: Config-Model
- Module version: 2.150
- Source (raw)
- Browse (raw)
- Changes
- Homepage
- How to Contribute
- Repository
- Issues (2)
- Testers (121 / 5 / 12)
- Kwalitee
Bus factor: 1- 82.19% Coverage
- License: lgpl_2_1
- Perl: v5.20.0
- Activity
24 month- Tools
- Download (377.11KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- Dependencies
- Carp
- Carp::Assert::More
- Cwd
- Data::Dumper
- Encode
- English
- Fcntl
- File::HomeDir
- File::Path
- Hash::Merge
- JSON
- List::MoreUtils
- List::Util
- Log::Log4perl
- Mouse
- Mouse::Role
- Mouse::Util
- Mouse::Util::TypeConstraints
- MouseX::NativeTraits
- MouseX::StrictConstructor
- POSIX
- Parse::RecDescent
- Path::Tiny
- Pod::POM
- Pod::Simple
- Pod::Text
- Regexp::Common
- Scalar::Util
- Storable
- Text::Levenshtein::Damerau
- Text::Wrap
- YAML::Tiny
- base
- feature
- open
- overload
- parent
- strict
- utf8
- vars
- warnings
- Reverse dependencies
- CPAN Testers List
- Dependency graph
- NAME
- VERSION
- SYNOPSIS
- DESCRIPTION
- USER COMMAND SYNTAX
- CONSTRUCTOR
- Methods
- AUTHOR
- SEE ALSO
- AUTHOR
- COPYRIGHT AND LICENSE
NAME
Config::Model::SimpleUI - Simple interface for Config::Model
VERSION
version 2.150
SYNOPSIS
use Config::Model; use Config::Model::SimpleUI ; # define configuration tree object my $model = Config::Model->new; $model->create_config_class( name => "Foo", element => [ [qw/foo bar/] => { type => 'leaf', value_type => 'string' }, ] ); $model ->create_config_class ( name => "MyClass", element => [ [qw/foo bar/] => { type => 'leaf', value_type => 'string' }, hash_of_nodes => { type => 'hash', # hash id index_type => 'string', cargo => { type => 'node', config_class_name => 'Foo' }, }, ], ) ; my $inst = $model->instance(root_class_name => 'MyClass' ); my $root = $inst->config_root ; # put data my $steps = 'foo=FOO hash_of_nodes:fr foo=bonjour - hash_of_nodes:en foo=hello '; $root->load( steps => $steps ); my $ui = Config::Model::SimpleUI->new( root => $root , title => 'My class ui', prompt => 'class ui', ); # engage in user interaction $ui -> run_loop ; print $root->dump_tree ;
Once the synopsis above has been saved in
my_test.pl
, you can do:$ perl my_test.pl class ui:$ ls foo bar hash_of_nodes class ui:$ ll hash_of_nodes name value type comment hash_of_nodes <Foo> node hash keys: "en" "fr" class ui:$ cd hash_of_nodes:en class ui: hash_of_nodes:en $ ll name value type comment foo hello string bar [undef] string class ui: hash_of_nodes:en $ set bar=bonjour class ui: hash_of_nodes:en $ ll name value type comment foo hello string bar bonjour string class ui: hash_of_nodes:en $ ^D
At the end, the test script dumps the configuration tree. The modified
bar
value can be found in there:foo=FOO hash_of_nodes:en foo=hello bar=bonjour - hash_of_nodes:fr foo=bonjour - -
DESCRIPTION
This module provides a pure ASCII user interface using STDIN and STDOUT.
USER COMMAND SYNTAX
- cd ...
-
Jump into node or value element. You can use
cd <element>
,cd <elt:key>
orcd -
to go up one node orcd !
to go to configuration root. - set elt=value
-
Set a leaf value.
- set elt:key=value
-
Set a leaf value locate in a hash or list element.
- clear elt
-
Clear leaf value (set to
undef
) or removed all elements of hash or list. - delete elt
-
Delete leaf value.
- delete elt:key
-
Delete a list or hash element
- display node_name elt:key
-
Display a value
- ls [path] [ pattern ]
-
Show elements of current node or of a node pointed by path. Elements can be filtered with a shell pattern. See inline help for more details.
- ll [-nz] [-v] [ pattern ... ]
-
Describe elements of current node. Can be used with shell patterns or element names. Skip empty element with
-nz
option. Display more information with-v
option - tree [path]
-
Show configuration tree from current node or of a node pointed by path.
- info [path]
-
Show debug information on current node or on the element pointed by path. The debug information may show model parametersm default or computed values.
- help
-
Show available commands.
- desc[ription]
-
Show class description of current node.
- desc(elt)
-
Show description of element from current node.
- desc(value)
-
Show effect of value (for enum)
- changes
-
Show unsaved changes
- check
-
Without parameter, show warnings starting from current node. With an element name as parameter, do the same on the element.
- fix
-
Try to fix warning starting from current node. With an element name as parameter, do the same on the element. With "
!
" as parameter, try to fix warnings starting from root node by calling apply_fixes there. - exit
-
Exit shell
CONSTRUCTOR
parameters
- root
-
Root node of the configuration tree
- title
-
UI title
- prompt
-
UI prompt. The prompt will be completed with the location of the current node.
Methods
run_loop
Engage in user interaction until user enters '^D' (CTRL-D).
AUTHOR
Dominique Dumont, (ddumont at cpan dot org)
SEE ALSO
Config::Model, Config::Model::Instance, Config::Model::Node,
AUTHOR
Dominique Dumont
COPYRIGHT AND LICENSE
This software is Copyright (c) 2005-2022 by Dominique Dumont.
This is free software, licensed under:
The GNU Lesser General Public License, Version 2.1, February 1999
Module Install Instructions
To install Config::Model, copy and paste the appropriate command in to your terminal.
cpanm Config::Model
perl -MCPAN -e shell install Config::Model
For more information on module installation, please visit the detailed CPAN module installation guide.