{"id":21503350,"url":"https://github.com/grantstreetgroup/bread-board-lifecycle-session","last_synced_at":"2025-03-17T13:43:59.178Z","repository":{"id":36595190,"uuid":"40901213","full_name":"GrantStreetGroup/Bread-Board-LifeCycle-Session","owner":"GrantStreetGroup","description":"Add new types of lifecycles to Bread::Board","archived":false,"fork":false,"pushed_at":"2020-02-21T20:07:21.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-01-23T23:44:36.901Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GrantStreetGroup.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-17T14:25:52.000Z","updated_at":"2020-02-21T20:07:20.000Z","dependencies_parsed_at":"2022-09-02T03:40:32.324Z","dependency_job_id":null,"html_url":"https://github.com/GrantStreetGroup/Bread-Board-LifeCycle-Session","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrantStreetGroup%2FBread-Board-LifeCycle-Session","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrantStreetGroup%2FBread-Board-LifeCycle-Session/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrantStreetGroup%2FBread-Board-LifeCycle-Session/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrantStreetGroup%2FBread-Board-LifeCycle-Session/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GrantStreetGroup","download_url":"https://codeload.github.com/GrantStreetGroup/Bread-Board-LifeCycle-Session/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244044178,"owners_count":20388726,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-23T18:21:49.376Z","updated_at":"2025-03-17T13:43:59.124Z","avatar_url":"https://github.com/GrantStreetGroup.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NAME\n\nBread::Board::LifeCycle::Session - A short-lived singleton for Bread::Board\n\n# VERSION\n\nversion v0.900.1\n\n# SYNOPSIS\n\n    use Bread::Board;\n\n    my $c = container 'Reports' =\u003e as {\n        service generic_report =\u003e (\n            class     =\u003e 'Report',\n            lifecycle =\u003e 'Session',\n        );\n    };\n\n    sub dispatch {\n        # ... dispatch code ...\n\n        my $services_flushed = $c-\u003eflush_session_instances;\n    }\n\n# DESCRIPTION\n\nThis implements a short-term \"Session\" lifecycle for Bread::Board.  Services with this lifecycle will exist as a singleton until they\nare flushed with the [flush\\_session\\_instances](https://metacpan.org/pod/Bread%3A%3ABoard%3A%3AContainer%3A%3ARole%3A%3AWithSessions#flush_session_instances) method.  The idea is\nthat this method would be called at the end of a web request, but a \"session\" could be defined as any sort of short-term cycle.\n\nThe [Bread::Board::Container::Role::WithSessions](https://metacpan.org/pod/Bread%3A%3ABoard%3A%3AContainer%3A%3ARole%3A%3AWithSessions) role is applied to all containers that exist in or around the service.\n\nThis module is similar to [Bread::Board::LifeCycle::Request](https://metacpan.org/pod/Bread%3A%3ABoard%3A%3ALifeCycle%3A%3ARequest), but has no connections to [OX](https://metacpan.org/pod/OX).\n\n# ACKNOWLEDGEMENTS\n\nThanks to Grant Street Group [http://www.grantstreet.com](http://www.grantstreet.com) for funding development of this code.\n\nThanks to Steve Grazzini (`\u003cGRAZZ@CPAN.org\u003e`) for discussion of the concept.\n\n# AUTHOR\n\nGrant Street Group \u003cdevelopers@grantstreet.com\u003e\n\n# COPYRIGHT AND LICENSE\n\nThis software is Copyright (c) 2015 - 2020 by Grant Street Group.\n\nThis is free software, licensed under:\n\n    The Artistic License 2.0 (GPL Compatible)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrantstreetgroup%2Fbread-board-lifecycle-session","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrantstreetgroup%2Fbread-board-lifecycle-session","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrantstreetgroup%2Fbread-board-lifecycle-session/lists"}