coucou

Master description . Let's go for a very long description with utf8 chars: ßéè.

Big class to do:

  • shiny

  • beautiful

things. ", level => [ [qw/lista hash_a tree_macro int_v/] => 'important' ], rw_config => { backend => 'cds_file', config_dir => '/foo', file => 'a_test.cds', auto_create => 1 }, gist => 'M tree_macro:{tree_macro}', accept => [ 'foo.*' => { type => 'leaf', value_type => 'uniline'} ], element => [ tree_macro => { type => 'leaf', value_type => 'enum', choice => [qw/XY XZ mXY/], help => { XY => 'XY help', XZ => 'XZ help', mXY => 'mXY help', } }, pop_in_out => { type => 'leaf', level => 'hidden', value_type => 'uniline', default => 'yada yada', warp => { follow => '! tree_macro', rules => [ XZ => { level => 'normal' }, ], }, },

          [qw/compute_av compute_bv/] => {
              type       => 'leaf',
              class      => 'Config::Model::Value',
              value_type => 'integer',
          },
          compute_int => {
              type       => 'leaf',
              class      => 'Config::Model::Value',
              value_type => 'integer',
              compute    => {
                  formula   => '$a + $b',
                  variables => { a => '- compute_av', b => '- compute_bv' }
              },
              min => -4,
              max => 4,
          },
          std_id => {
              type       => 'hash',
              index_type => 'string',
              cargo      => {
                  type              => 'node',
                  config_class_name => 'SlaveZ'
              },
          },
          [qw/lista listb/] => {
              type  => 'list',
              cargo => {
                  type       => 'leaf',
                  value_type => 'uniline'
              },
              summary => 'lista and listb are used to yada yada with utf8 chars: ßéè',
          },
          [qw/hash_a hash_b/] => {
              type       => 'hash',
              index_type => 'string',
              cargo      => {
                  type       => 'leaf',
                  value_type => 'uniline'
              },
          },
          ordered_hash => {
              type       => 'hash',
              index_type => 'string',
              ordered    => 1,
              cargo      => {
                  type       => 'leaf',
                  value_type => 'uniline'
              },
          },
          ordered_hash_of_mandatory => {
              type       => 'hash',
              index_type => 'string',
              ordered    => 1,
              cargo      => {
                  type       => 'leaf',
                  value_type => 'uniline',
                  mandatory  => 1,
              },
          },
          'ordered_hash_of_nodes' => {
              type       => 'hash',
              index_type => 'string',
              ordered    => 1,
              cargo      => {
                  type              => 'node',
                  config_class_name => 'SlaveZ'
              },
          },
          olist => {
              type  => 'list',
              cargo => {
                  type              => 'node',
                  config_class_name => 'SlaveZ',
              },
          },
          enum_list => {
              type  => 'list',
              cargo => {
                  type       => 'leaf',
                  value_type => 'enum',
                  choice     => [qw/A B C/],
              }
          },

          "list_with_warn_duplicates" => { 
              type => 'list', 
              duplicates => 'warn' , 
              cargo => { type => 'leaf', value_type => 'string' } 
          },
           "hash_with_warn_duplicates" => { 
              type => 'hash',
              index_type => 'string', 
              duplicates => 'warn' , 
              cargo => { type => 'leaf', value_type => 'string' } 
          },
         warp => {
              type              => 'warped_node',
              config_class_name => 'SlaveY',
              morph             => 1,
              warp => {
                  follow            => '! tree_macro',
                  rules             => [
                      #XY => { config_class_name => 'SlaveY'},
                      mXY => { config_class_name => 'SlaveY' },
                      XZ  => { config_class_name => 'SlaveZ' }
                  ]
              }
          },

          'slave_y' => {
              type              => 'node',
              config_class_name => 'SlaveY',
          },

          string_with_def => {
              type       => 'leaf',
              value_type => 'uniline',
              default    => 'yada yada'
          },
          a_uniline => {
              type       => 'leaf',
              value_type => 'uniline',
              default    => 'yada yada'
          },
          a_boolean => {
              type       => 'leaf',
              value_type => 'boolean',
          },
          yes_no_boolean => {
              type       => 'leaf',
              value_type => 'boolean',
              upstream_default => 'yes',
              write_as => [ 'no', 'yes' ],
          },
          [qw/a_string a_long_string another_string/] => {
              type       => 'leaf',
              value_type => 'string'
          },
          [qw/a_very_long_string/] => {
              type       => 'leaf',
              value_type => 'string',
              default => "    This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU Lesser General Public License as
  published by the Free Software Foundation; either version 2.1 of the
  License, or (at your option) any later version.
  On Debian GNU/Linux systems, the complete text of version 2.1 of the GNU
  Lesser General Public License can be found in `/usr/share/common-licenses/LGPL-2.1'"
          },
          [qw/a_mandatory_string another_mandatory_string/] => {
              type       => 'leaf',
              mandatory  => 1,
              value_type => 'string'
          },
          int_v => {
              type       => 'leaf',
              value_type => 'integer',
              default    => '10',
              min        => 5,
              max        => 15
          },
          upstream_default => {
              type             => 'leaf',
              value_type       => 'integer',
              upstream_default => '10',
          },
          my_plain_check_list => {
              type   => 'check_list',
              choice => [ 'AA' .. 'AE' ],
              help   => {
                  AA => 'AA help',
                  AC => 'AC help',
                  AE => 'AE help',
              },
              description =>
                'my_plain_check_list nto so helpfull description',
          },
          enum_with_help => {
              type   => 'leaf',
              value_type => 'enum' ,
              choice => [ 'AA' .. 'AE' ],
              help   => { map { ( $_ => "$_ help with utf8 ßé²") ;} ('AA' .. 'AE') },
              description =>
                'my_plain_check_list nto so helpfull description',
          },
          enum_with_help_and_long_desc => {
              type   => 'leaf',
              value_type => 'enum' ,
              choice => [ 'AA' .. 'AE' ],
              help   => { map { ( $_ => "$_ help with utf8 ßé²") ;} ('AA' .. 'AE') } ,
              description =>
                "my_plain_check_list not so helpful\n even if B<long> description 😁",
          },
          my_ref_check_list => {
              type     => 'check_list',
              refer_to => '- hash_a + ! hash_b',
          },
          'ordered_checklist' => {
              type    => 'check_list',
              choice  => [ 'A' .. 'Z' ],
              ordered => 1,
              help    => { A => 'A help', E => 'E help' },
              summary => 'will checklist be served ? ;-) ',
          },

          'check_list_with_upstream_default', => {
              # from OpenSsh Ssh model (KexAlgorithms)
              'choice' => [
                  'ecdh-sha2-nistp256',
                  'ecdh-sha2-nistp384',
                  'ecdh-sha2-nistp521',
                  'diffie-hellman-group-exchange-sha256',
                  'diffie-hellman-group-exchange-sha1',
                  'diffie-hellman-group14-sha1',
                  'diffie-hellman-group1-sha1'
              ],
              'description' => 'Specifies the available KEX (Key Exchange) algorithms.',
              'type' => 'check_list',
              'upstream_default_list' => [
                  'diffie-hellman-group-exchange-sha1',
                  'diffie-hellman-group-exchange-sha256',
                  'diffie-hellman-group1-sha1',
                  'diffie-hellman-group14-sha1',
                  'ecdh-sha2-nistp256',
                  'ecdh-sha2-nistp384',
                  'ecdh-sha2-nistp521'
              ]
          },
          my_reference => {
              type       => 'leaf',
              value_type => 'reference',
              refer_to   => '- hash_a + ! hash_b',
              summary    => 'justify a long help ;-) ',
          },

          warn_unless => {
              type       => 'leaf',
              value_type => 'string',
              warn_unless_match =>
                { foo => { msg => '', fix => '$_ = "foo".$_;' } },
          },
          always_warn => {
              type       => 'leaf',
              value_type => 'string',
              warn       => 'Always warn whenever used',
          },
          hash_with_warn_unless_key_match => {
              type       => 'hash',
              index_type => 'string',
              cargo      => { type => 'leaf', value_type => 'string' },
              warn_unless_key_match => 'foo',
          },

      ],
      description => [
          tree_macro    => 'controls behavior of other elements',
          a_long_string => "long string with \\n in it and with utf8 chars: ßéè",
          my_reference  => "very long help:\n"
            . "Config::Model enables a project developer to provide an interactive configuration editor to his users. For this he must:
- describe the structure and constraint of his project's configuration
- if the configuration data is not stored in INI file or in Perl data
file, he must provide some code to read and write configuration from
configuration files.
"
      ]
  ],
];

# do not put 1; at the end or Model-> load will not work

1 POD Error

The following errors were encountered while parsing the POD:

Around line 131:

Non-ASCII character seen before =encoding in 'ßéè.'. Assuming UTF-8