{
    "content": [
        {
            "type": "text",
            "text": "# TAP::Parser::Iterator::Process (perldoc)\n\n**Summary:** TAP::Parser::Iterator::Process - Iterator for process-based TAP sources\n\n**Synopsis:** use TAP::Parser::Iterator::Process;\nmy %args = (\ncommand  => ['python', 'setup.py', 'test'],\nmerge    => 1,\nsetup    => sub { ... },\nteardown => sub { ... },\n);\nmy $it   = TAP::Parser::Iterator::Process->new(\\%args);\nmy $line = $it->next;\n\n## Section Outline\n\n- **NAME** (2 lines)\n- **VERSION** (2 lines)\n- **SYNOPSIS** (10 lines)\n- **DESCRIPTION** (3 lines)\n- **METHODS** (1 lines) — 2 subsections\n  - Class Methods (11 lines)\n  - Instance Methods (19 lines)\n- **ATTRIBUTION** (2 lines)\n- **SEE ALSO** (2 lines)\n\n## Full Content\n\n### NAME\n\nTAP::Parser::Iterator::Process - Iterator for process-based TAP sources\n\n### VERSION\n\nVersion 3.43\n\n### SYNOPSIS\n\nuse TAP::Parser::Iterator::Process;\nmy %args = (\ncommand  => ['python', 'setup.py', 'test'],\nmerge    => 1,\nsetup    => sub { ... },\nteardown => sub { ... },\n);\nmy $it   = TAP::Parser::Iterator::Process->new(\\%args);\nmy $line = $it->next;\n\n### DESCRIPTION\n\nThis is a simple iterator wrapper for executing external processes, used by TAP::Parser. Unless\nyou're writing a plugin or subclassing, you probably won't need to use this module directly.\n\n### METHODS\n\n#### Class Methods\n\n\"new\"\nCreate an iterator. Expects one argument containing a hashref of the form:\n\ncommand  => \\@commandtoexecute\nmerge    => $attemptmergestderrandstdout?\nsetup    => $callbacktosetupcommand\nteardown => $callbacktoteardowncommand\n\nTries to uses IPC::Open3 & IO::Select to communicate with the spawned process if they are\navailable. Falls back onto \"open()\".\n\n#### Instance Methods\n\n\"next\"\nIterate through the process output, of course.\n\n\"nextraw\"\nIterate raw input without applying any fixes for quirky input syntax.\n\n\"wait\"\nGet the wait status for this iterator's process.\n\n\"exit\"\nGet the exit status for this iterator's process.\n\n\"handleunicode\"\nUpgrade the input stream to handle UTF8.\n\n\"getselecthandles\"\nReturn a list of filehandles that may be used upstream in a select() call to signal that this\nIterator is ready. Iterators that are not handle based should return an empty list.\n\n### ATTRIBUTION\n\nOriginally ripped off from Test::Harness.\n\n### SEE ALSO\n\nTAP::Object, TAP::Parser, TAP::Parser::Iterator,\n\n"
        }
    ],
    "structuredContent": {
        "command": "TAP::Parser::Iterator::Process",
        "section": "",
        "mode": "perldoc",
        "summary": "TAP::Parser::Iterator::Process - Iterator for process-based TAP sources",
        "synopsis": "use TAP::Parser::Iterator::Process;\nmy %args = (\ncommand  => ['python', 'setup.py', 'test'],\nmerge    => 1,\nsetup    => sub { ... },\nteardown => sub { ... },\n);\nmy $it   = TAP::Parser::Iterator::Process->new(\\%args);\nmy $line = $it->next;",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "VERSION",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 10,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "METHODS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "Class Methods",
                        "lines": 11
                    },
                    {
                        "name": "Instance Methods",
                        "lines": 19
                    }
                ]
            },
            {
                "name": "ATTRIBUTION",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "TAP::Parser::Iterator::Process - Iterator for process-based TAP sources\n",
                "subsections": []
            },
            "VERSION": {
                "content": "Version 3.43\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "use TAP::Parser::Iterator::Process;\nmy %args = (\ncommand  => ['python', 'setup.py', 'test'],\nmerge    => 1,\nsetup    => sub { ... },\nteardown => sub { ... },\n);\nmy $it   = TAP::Parser::Iterator::Process->new(\\%args);\nmy $line = $it->next;\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "This is a simple iterator wrapper for executing external processes, used by TAP::Parser. Unless\nyou're writing a plugin or subclassing, you probably won't need to use this module directly.\n",
                "subsections": []
            },
            "METHODS": {
                "content": "",
                "subsections": [
                    {
                        "name": "Class Methods",
                        "content": "\"new\"\nCreate an iterator. Expects one argument containing a hashref of the form:\n\ncommand  => \\@commandtoexecute\nmerge    => $attemptmergestderrandstdout?\nsetup    => $callbacktosetupcommand\nteardown => $callbacktoteardowncommand\n\nTries to uses IPC::Open3 & IO::Select to communicate with the spawned process if they are\navailable. Falls back onto \"open()\".\n"
                    },
                    {
                        "name": "Instance Methods",
                        "content": "\"next\"\nIterate through the process output, of course.\n\n\"nextraw\"\nIterate raw input without applying any fixes for quirky input syntax.\n\n\"wait\"\nGet the wait status for this iterator's process.\n\n\"exit\"\nGet the exit status for this iterator's process.\n\n\"handleunicode\"\nUpgrade the input stream to handle UTF8.\n\n\"getselecthandles\"\nReturn a list of filehandles that may be used upstream in a select() call to signal that this\nIterator is ready. Iterators that are not handle based should return an empty list.\n"
                    }
                ]
            },
            "ATTRIBUTION": {
                "content": "Originally ripped off from Test::Harness.\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "TAP::Object, TAP::Parser, TAP::Parser::Iterator,\n",
                "subsections": []
            }
        }
    }
}