Lines 4-9
use Modern::Perl;
Link Here
|
4 |
|
4 |
|
5 |
use Koha::Database; |
5 |
use Koha::Database; |
6 |
|
6 |
|
|
|
7 |
use Bytes::Random::Secure; |
7 |
use Carp; |
8 |
use Carp; |
8 |
use Module::Load; |
9 |
use Module::Load; |
9 |
use String::Random; |
10 |
use String::Random; |
Lines 432-449
sub _gen_datetime {
Link Here
|
432 |
sub _gen_text { |
433 |
sub _gen_text { |
433 |
my ($self, $params) = @_; |
434 |
my ($self, $params) = @_; |
434 |
# From perldoc String::Random |
435 |
# From perldoc String::Random |
435 |
# max: specify the maximum number of characters to return for * and other |
436 |
my $size = $params->{info}{size} // 10; |
436 |
# regular expression patters that don't return a fixed number of characters |
437 |
$size -= alt_rand(0.5 * $size); |
437 |
my $regex = '[A-Za-z][A-Za-z0-9_]*'; |
438 |
my $regex = $size > 1 |
438 |
my $size = $params->{info}{size}; |
439 |
? '[A-Za-z][A-Za-z0-9_]{'.($size-1).'}' |
439 |
if ( defined $size and $size > 1 ) { |
440 |
: '[A-Za-z]'; |
440 |
$size--; |
441 |
my $random = String::Random->new( max => $size, rand_gen => \&alt_rand ); |
441 |
} elsif ( defined $size and $size == 1 ) { |
442 |
return $random->randregex($regex); |
442 |
$regex = '[A-Za-z]'; |
443 |
} |
443 |
} |
444 |
|
444 |
my $random = String::Random->new( max => $size ); |
445 |
sub alt_rand { #Alternative randomizer |
445 |
my $text = $random->randregex($regex); |
446 |
my ($max) = @_; |
446 |
return $text; |
447 |
my $random = Bytes::Random::Secure->new( NonBlocking => 1 ); |
|
|
448 |
my $r = $random->irand / 2**32; |
449 |
return int( $r * $max ); |
447 |
} |
450 |
} |
448 |
|
451 |
|
449 |
sub _gen_set_enum { |
452 |
sub _gen_set_enum { |
450 |
- |
|
|