|
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 |
- |
|
|