NAME
Data::Password::zxcvbn::AuthorTools::BuildAdjacencyGraphs - class to generate Data::Password::zxcvbn::*::AdjacencyGraph
VERSION
version 1.0.0
SYNOPSIS
In your distribution's maint/build-keyboard-adjacency-graphs:
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Password::zxcvbn::AuthorTools::BuildAdjacencyGraphs;
Data::Password::zxcvbn::AuthorTools::BuildAdjacencyGraphs->new({
layouts => [
{ name => 'keypad', layout => <<'EOK', slanted => 0 },
/ * -
7 8 9 +
4 5 6
1 2 3
0 .
EOK
{ name => 'qwerty', layout => <<'EOK', slanted => 1 },
`~ 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+
qQ wW eE rR tT yY uU iI oO pP [{ ]} \|
aA sS dD fF gG hH jJ kK lL ;: '"
zZ xX cC vV bB nN mM ,< .> /?
EOK
],
package_name => 'Data::Password::zxcvbn::AdjacencyGraph::MyThing',
package_abstract => 'adjacency graphs for my keyboards',
package_description => <<'EOF',
This is a data file used by L<<
C<Data::Password::zxcvbn::Match::Spatial> >>, and is generated by
the L<< C<build-keyboard-adjacency-graphs>|...>> program when
building the distribution.
EOF
})->generate;
(a skeleton of such a file is generated when running dzil new -P zxcvbn Data::Password::zxcvbn::MyThing
)
ATTRIBUTES
layouts
Arrayref of dictionaries (name
, layout
, slanted
) defining the keyboards to analyse.
output_dir
Where to write the generated package. Defaults to $ARGV[1]
or lib/; this supports running the main/build-keyboard-adjacency-graphs script manually and via the dist.ini file.
package_name
Name of the package to generate, required. Should start with Data::Password::zxcvbn::AdjacencyGraph::
package_version
Version of the package. Defaults to $ARGV[0]
or undef
; this supports running the main/build-keyboard-adjacency-graphs script manually and via the dist.ini file.
package_abstract
Abstract of the package, defaults to "adjacency graphs for common keyboards".
package_description
Description of the package, required.
METHODS
generate
Writes out the package.
AUTHOR
Gianni Ceccarelli <gianni.ceccarelli@broadbean.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2023 by BroadBean UK, a CareerBuilder Company.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.