Ryu

 view release on metacpan or  search on metacpan

META.json  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",

META.yml  view on Meta::CPAN

  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,

cpanfile  view on Meta::CPAN

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.286 second using v1.01-cache-2.11-cpan-a5abf4f5562 )