{"id":16918919,"url":"https://github.com/rkh/unpatched","last_synced_at":"2025-07-07T07:35:24.770Z","repository":{"id":59158699,"uuid":"1826617","full_name":"rkh/unpatched","owner":"rkh","description":"Yet another WTF library!","archived":false,"fork":false,"pushed_at":"2011-05-31T14:26:43.000Z","size":100,"stargazers_count":23,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T06:33:04.906Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rkh.github.com/unpatched/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rkh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-05-31T14:13:43.000Z","updated_at":"2021-01-13T19:31:46.000Z","dependencies_parsed_at":"2022-09-13T20:11:03.183Z","dependency_job_id":null,"html_url":"https://github.com/rkh/unpatched","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/rkh/unpatched","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkh%2Funpatched","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkh%2Funpatched/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkh%2Funpatched/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkh%2Funpatched/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rkh","download_url":"https://codeload.github.com/rkh/unpatched/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkh%2Funpatched/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264034985,"owners_count":23547317,"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-10-13T19:42:18.710Z","updated_at":"2025-07-07T07:35:24.748Z","avatar_url":"https://github.com/rkh.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"Convenience library, like ActiveSupport or extlib, but without a single\nmonkey-patch. It is also an API experiment.\n\n# Usage\n\nStand alone:\n\n``` ruby\nrequire 'unpatched'\ninclude Unpatched\n\nlike(\"FooBar\").but.underscore!\nabout(1).month.and(4).days.ago!\n```\n\nIs that too much sugar? Try this:\n\n``` ruby\nrequire 'unpatched'\ninclude Unpatched::Unfancy\n_('FooBar').underscore!\n```\n\nStill too much?\n\n``` ruby\nrequire 'unpatched'\nUnpatched['FooBar'].underscore!\n```\n\nWith Sinatra:\n\n``` ruby\nrequire 'sinatra'\nrequire 'unpatched'\nhelpers Unpatched\n\nget '/' do\n  expires exactly(1.5).minutes.from_now!\n  \"Hey, ho, let's go!\"\nend\n```\n\n# When to use an exclamation mark\n\nShort: You don't have to. But methods without one will always return magically\nenhanced objects. Since you never want to pass those on (otherwise, what's the\npoint?), you can get vanilla objects by using an exclamation mark.\n\nRule of thumb: Use it at the end of your method chain.\n\n# Installation\n\n    gem install unpatched\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frkh%2Funpatched","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frkh%2Funpatched","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frkh%2Funpatched/lists"}