NAME

Data::Password::zxcvbn::AuthorTools::BuildRankedDictionaries - class to generate Data::Password::zxcvbn::*::RankedDictionaries

VERSION

version 1.0.2

SYNOPSIS

In your distribution's maint/build-ranked-dictionaries:

#!/usr/bin/env perl
use strict;
use warnings;
use Data::Password::zxcvbn::AuthorTools::BuildRankedDictionaries;

Data::Password::zxcvbn::AuthorTools::BuildRankedDictionaries->new({
    dictionaries_word_count => {
        mything_wikipedia => 30000,
        mything_names     => 10000,
    },
    package_name => 'Data::Password::zxcvbn::RankedDictionaries::MyThing',
    package_abstract => 'adjacency graphs for my language',
    package_description => <<'EOF',
This is a data file used by L<<
C<Data::Password::zxcvbn::Match::Dictionary> >>, and is generated by
the L<< C<build-ranked-dictionaries>|...>> 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

dictionaries_word_count

A hashref mapping dictionary names to number of words to use (a 0 value means "include all words"). The code in the "synopsis" would look for files data/mything_wikipedia.txt and data/mything_names.txt.

data_dir

Where to look for data files, defaults to data/.

output_dir

Where to write the generated package. Defaults to $ARGV[1] or lib/; this supports running the main/build-ranked-dictionaries script manually and via the dist.ini file.

package_name

Name of the package to generate, required. Should start with Data::Password::zxcvbn::RankedDictionaries::

package_version

Version of the package. Defaults to $ARGV[0] or undef; this supports running the main/build-ranked-dictionaries script manually and via the dist.ini file.

package_abstract

Abstract of the package, defaults to "ranked dictionaries for common words".

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.