{"id":20707580,"url":"https://github.com/theory/masonx-interp-withcallbacks","last_synced_at":"2026-02-12T07:36:23.309Z","repository":{"id":66729438,"uuid":"1927355","full_name":"theory/masonx-interp-withcallbacks","owner":"theory","description":"Mason callback support via Params::CallbackRequest.","archived":false,"fork":false,"pushed_at":"2025-10-03T16:52:30.000Z","size":88,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-03T18:45:37.740Z","etag":null,"topics":["html","mason","perl","template"],"latest_commit_sha":null,"homepage":"https://metacpan.org/pod/MasonX::Interp::WithCallbacks","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theory.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2011-06-21T04:11:52.000Z","updated_at":"2025-10-03T16:52:35.000Z","dependencies_parsed_at":"2025-10-03T18:30:58.343Z","dependency_job_id":"268ac8f9-455e-4c42-bfe7-ef26c07cd3e4","html_url":"https://github.com/theory/masonx-interp-withcallbacks","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/theory/masonx-interp-withcallbacks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theory%2Fmasonx-interp-withcallbacks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theory%2Fmasonx-interp-withcallbacks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theory%2Fmasonx-interp-withcallbacks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theory%2Fmasonx-interp-withcallbacks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theory","download_url":"https://codeload.github.com/theory/masonx-interp-withcallbacks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theory%2Fmasonx-interp-withcallbacks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29361609,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["html","mason","perl","template"],"created_at":"2024-11-17T01:26:53.026Z","updated_at":"2026-02-12T07:36:23.294Z","avatar_url":"https://github.com/theory.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"MasonX/Interp/WithCallbacks version 1.20\n========================================\n\n[![🧅 CPAN version](https://badge.fury.io/pl/MasonX-Interp-WithCallbacks.svg)](https://badge.fury.io/pl/MasonX-Interp-WithCallbacks)\n[![✅ Build Status](https://github.com/theory/masonx-interp-withcallbacks/actions/workflows/ci.yml/badge.svg)](https://github.com/theory/masonx-interp-withcallbacks/actions/workflows/ci.yml)\n\nMasonX::Interp::WithCallbacks subclasses HTML::Mason::Interp in order to\nprovide a [Mason] callback system built on [Params::CallbackRequest].\nCallbacks may be either code references provided to the `new()` constructor,\nor methods defined in subclasses of [Params::Callback]. Callbacks are triggered\neither for every request or by specially named keys in the Mason request\narguments, and all callbacks are executed at the beginning of a request, just\nbefore Mason creates and executes the request component stack.\n\nThis module brings support for a sort of plugin architecture based on\nParams::CallbackRequest to Mason. Mason then executes code before executing\nany components. This approach allows you to carry out logical processing of\ndata submitted from a form, to affect the contents of the Mason request\narguments (and thus the `%ARGS` hash in components), and even to redirect or\nabort the request before Mason handles it.\n\nInstallation\n------------\n\nTo install this module type the following:\n\n    perl Build.PL\n    ./Build\n    ./Build test\n    ./Build install\n\nDependencies\n------------\n\nThis module requires these other modules and libraries:\n\n* Params::CallbackRequest 1.10 or later\n* HTML::Mason 1.23 or later\n* Params::Validate 0.59 or later\n* Exception::Class 1.10 or later\n\nThe object-oriented callback interface requires Perl 5.6 or later and\nthese other modules and libraries:\n\n* Attribute::Handlers 0.77 or later\n* Clas::ISA\n\nThe test suite requires:\n\n* Test::Simple 0.17 or later\n\nTesting of this module with HTML::Mason::ApacheHandler requires:\n\n* Apache::Test 1.03 or later\n* mod_perl 1.22 or later\n* LWP\n\nCopyright and License\n---------------------\n\nCopyright (c) 2003-2024 David E. Wheeler. Some Rights Reserved.\n\nThis library is free software; you can redistribute it and/or modify it under\nthe same terms as Perl itself.\n\n  [HTML::Mason::Interp]: https://metacpan.org/pod/HTML::Mason::Interp\n  [Mason]: https://metacpan.org/dist/HTML-Mason\n  [Params::CallbackRequest]: https://metacpan.org/pod/Params::CallbackRequest\n  [Params::Callback]: https://metacpan.org/pod/Params::Callback\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheory%2Fmasonx-interp-withcallbacks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheory%2Fmasonx-interp-withcallbacks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheory%2Fmasonx-interp-withcallbacks/lists"}