{"id":15408424,"url":"https://github.com/yusukebe/rumi","last_synced_at":"2025-07-31T08:08:20.623Z","repository":{"id":1324694,"uuid":"1269990","full_name":"yusukebe/Rumi","owner":"yusukebe","description":"Yet Anothor Girl, just web application framework.","archived":false,"fork":false,"pushed_at":"2011-04-10T06:20:42.000Z","size":116,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T04:28:54.724Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://yusukebe.com/","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/yusukebe.png","metadata":{"files":{"readme":"README.mkdn","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}},"created_at":"2011-01-19T06:30:38.000Z","updated_at":"2019-08-13T14:40:45.000Z","dependencies_parsed_at":"2022-08-16T13:05:23.162Z","dependency_job_id":null,"html_url":"https://github.com/yusukebe/Rumi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yusukebe/Rumi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yusukebe%2FRumi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yusukebe%2FRumi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yusukebe%2FRumi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yusukebe%2FRumi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yusukebe","download_url":"https://codeload.github.com/yusukebe/Rumi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yusukebe%2FRumi/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268010102,"owners_count":24180459,"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","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"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":[],"created_at":"2024-10-01T16:33:53.188Z","updated_at":"2025-07-31T08:08:20.593Z","avatar_url":"https://github.com/yusukebe.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rumi - yet another girl.\n\nRumi is lightweight web application framework for me.\n\n## Example\n\n### myapp.psgi\n\n    use lib \"./lib\";\n    use MyApp::Web;\n    use Plack::Builder;\n\n    my $web = MyApp::Web-\u003enew;\n    my $app = $web-\u003eto_app();\n\n    builder {\n        enable \"Plack::Middleware::Static\",\n          path =\u003e qr{^/(favicon\\.ico|images/|js/|css/)},\n          root =\u003e './htdocs/';\n        enable_if { $_[0]-\u003e{REMOTE_ADDR} eq '127.0.0.1' }\n        \"Plack::Middleware::ReverseProxy\";\n        enable \"Plack::Middleware::AccessLog\", format =\u003e \"combined\";\n        $app;\n    };\n\n### MyApp/Web.pm\n\n    package MyApp::Web;\n    use strict;\n    use warnings;\n\n    use parent qw/Rumi::Web/;\n    use Text::Xslate;\n    sub install_view {\n        my $view = Text::Xslate-\u003enew(\n            path =\u003e ['./tmpl'],\n            header =\u003e ['header.tt2'],\n            footer =\u003e ['footer.tt2'],\n            syntax =\u003e 'TTerse',\n        );\n        return { default =\u003e $view };\n    }\n\n    1;\n\n### MyApp/Web/Dispatcher.pm\n\n    package MyApp::Web::Dispatcher;\n    use strict;\n    use warnings;\n\n    use Rumi::Web::Dispatcher;\n    connect '/' =\u003e { controller =\u003e 'Root', action =\u003e 'index' };\n\n    1;\n\n### MyApp/Web/Controller/Root.pm\n\n    package MyApp::Web::Controller::Root;\n    use strict;\n    use warnings;\n\n    sub index {\n        my ( $self, $c ) = @_;\n        return 'index.tt2', {};\n    }\n\n    1;\n\n## Core required modules.\n\n- Plack::Request\n- Router::Simple\n- (Text::Xslate)\n\n## TODO\n\n- Writing tests\n- Setup script\n- Session\n\n## AUTHOR \n\n- Yusuke Wada\n- http://yusukebe.com/\n- yusuke@kamawada.com\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyusukebe%2Frumi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyusukebe%2Frumi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyusukebe%2Frumi/lists"}