Ryu
view release on metacpan or search on metacpan
},
"requires" : {
"Encode" : "1.98",
"Future" : "0.42",
"Future::Queue" : "0.52",
"JSON::MaybeXS" : "0",
"List::UtilsBy" : "0.10",
"Log::Any" : "1.045",
"Log::Any::Adapter" : "1.045",
"MIME::Base64" : "0",
"Ref::Util" : "0.111",
"Scalar::Util" : "1.47",
"Syntax::Keyword::Try" : "0.04",
"Text::CSV" : "0",
"curry" : "1.001",
"indirect" : "0",
"parent" : "0",
"perl" : "5.018"
},
"suggests" : {
"JSON::SL" : "v1.0.6",
Text::CSV: '0'
requires:
Encode: '1.98'
Future: '0.42'
Future::Queue: '0.52'
JSON::MaybeXS: '0'
List::UtilsBy: '0.10'
Log::Any: '1.045'
Log::Any::Adapter: '1.045'
MIME::Base64: '0'
Ref::Util: '0.111'
Scalar::Util: '1.47'
Syntax::Keyword::Try: '0.04'
Text::CSV: '0'
curry: '1.001'
indirect: '0'
parent: '0'
perl: '5.018'
resources:
bugtracker: https://github.com/team-at-cpan/Ryu/issues
homepage: https://github.com/team-at-cpan/Ryu
Makefile.PL view on Meta::CPAN
"NAME" => "Ryu",
"PREREQ_PM" => {
"Encode" => "1.98",
"Future" => "0.42",
"Future::Queue" => "0.52",
"JSON::MaybeXS" => 0,
"List::UtilsBy" => "0.10",
"Log::Any" => "1.045",
"Log::Any::Adapter" => "1.045",
"MIME::Base64" => 0,
"Ref::Util" => "0.111",
"Scalar::Util" => "1.47",
"Syntax::Keyword::Try" => "0.04",
"Text::CSV" => 0,
"curry" => "1.001",
"indirect" => 0,
"parent" => 0
},
"TEST_REQUIRES" => {
"ExtUtils::MakeMaker" => 0,
"File::Spec" => 0,
Makefile.PL view on Meta::CPAN
"Future" => "0.42",
"Future::Queue" => "0.52",
"IO::Handle" => 0,
"IPC::Open3" => 0,
"JSON::MaybeXS" => 0,
"List::UtilsBy" => "0.10",
"Log::Any" => "1.045",
"Log::Any::Adapter" => "1.045",
"Log::Any::Adapter::TAP" => "0.003002",
"MIME::Base64" => 0,
"Ref::Util" => "0.111",
"Scalar::Util" => "1.47",
"Syntax::Keyword::Try" => "0.04",
"Test::CheckDeps" => "0.010",
"Test::Deep" => "1.124",
"Test::Fatal" => "0.010",
"Test::Files" => "0.14",
"Test::More" => "0.98",
"Test::Refcount" => "0.07",
"Test::Warnings" => "0.024",
"Text::CSV" => 0,
requires 'perl', '>= 5.018';
requires 'parent', 0;
requires 'curry', '>= 1.001';
requires 'indirect', 0;
requires 'Future', '>= 0.42';
requires 'Future::Queue', '>= 0.52';
requires 'JSON::MaybeXS';
requires 'MIME::Base64';
requires 'Text::CSV';
requires 'Scalar::Util', '>= 1.47';
requires 'Ref::Util', '>= 0.111';
requires 'List::UtilsBy', '>= 0.10';
requires 'Log::Any', '>= 1.045';
requires 'Log::Any::Adapter', '>= 1.045';
requires 'Syntax::Keyword::Try', '>= 0.04';
requires 'Encode', '>= 1.98';
# Used for transcoding - not essential, but commonly used
recommends 'MIME::Base64', 0;
recommends 'JSON::MaybeUTF8', '>= 1.002';
recommends 'Text::CSV', 0;
lib/Ryu/Source.pm view on Meta::CPAN
->map(sub { $_ % 3 ? 'fizz' : $_ })
->map(sub { $_ % 5 ? 'buzz' : $_ })
->each(sub { print "An imperfect attempt at the fizz-buzz game: $_\n" })
=cut
no indirect;
use sort qw(stable);
use Scalar::Util ();
use Ref::Util ();
use List::Util ();
use List::UtilsBy;
use Encode ();
use Syntax::Keyword::Try;
use Future;
use Future::Queue;
use curry::weak;
use Ryu::Buffer;
lib/Ryu/Source.pm view on Meta::CPAN
into the child arrayrefs, but no further.
Failure on any input source will cause this source to be marked as failed as well.
=cut
sub flat_map {
my ($self, $code) = splice @_, 0, 2;
# Upgrade ->flat_map(method => args...) to a coderef
if(!Ref::Util::is_plain_coderef($code)) {
my $method = $code;
my @args = @_;
$code = sub { $_->$method(@args) }
}
my $src = $self->chained(label => (caller 0)[3] =~ /::([^:]+)$/);
Scalar::Util::weaken(my $weak_sauce = $src);
my $add = sub {
my $v = shift;
lib/Ryu/Source.pm view on Meta::CPAN
$src->finish unless %{$src->{waiting}};
});
$log->tracef("Added %s which will bring our count to %d", $k, 0 + keys %{$src->{waiting}});
};
$add->($self->_completed);
$self->each_while_source(sub {
my $src = $weak_sauce or return;
for ($code->($_)) {
my $item = $_;
if(Ref::Util::is_plain_arrayref($item)) {
$log->tracef("Have an arrayref of %d items", 0 + @$item);
for(@$item) {
last if $src->is_ready;
$src->emit($_);
}
} elsif(Scalar::Util::blessed($item) && $item->isa(__PACKAGE__)) {
$log->tracef("This item is a source");
$src->on_ready(sub {
return if $item->is_ready;
$log->tracef("Marking %s as ready because %s was", $item->describe, $src->describe);
t/00-report-prereqs.dd view on Meta::CPAN
},
'requires' => {
'Encode' => '1.98',
'Future' => '0.42',
'Future::Queue' => '0.52',
'JSON::MaybeXS' => '0',
'List::UtilsBy' => '0.10',
'Log::Any' => '1.045',
'Log::Any::Adapter' => '1.045',
'MIME::Base64' => '0',
'Ref::Util' => '0.111',
'Scalar::Util' => '1.47',
'Syntax::Keyword::Try' => '0.04',
'Text::CSV' => '0',
'curry' => '1.001',
'indirect' => '0',
'parent' => '0',
'perl' => '5.018'
},
'suggests' => {
'JSON::SL' => 'v1.0.6',
( run in 0.538 second using v1.01-cache-2.11-cpan-4d50c553e7e )