{"id":24667296,"url":"https://github.com/brandonweiss/hold_please","last_synced_at":"2026-02-28T23:31:20.023Z","repository":{"id":20114969,"uuid":"23384763","full_name":"brandonweiss/hold_please","owner":"brandonweiss","description":"📞 Disable ActiveRecord callbacks in Rails for great justice!","archived":false,"fork":false,"pushed_at":"2014-08-31T10:11:43.000Z","size":139,"stargazers_count":20,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-01T07:16:35.531Z","etag":null,"topics":["activerecord","activerecord-callbacks","anti-patterns","rails","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Tate-zwt/WTSDK","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brandonweiss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-27T09:48:34.000Z","updated_at":"2022-05-17T03:22:07.000Z","dependencies_parsed_at":"2022-07-21T19:48:42.791Z","dependency_job_id":null,"html_url":"https://github.com/brandonweiss/hold_please","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/brandonweiss/hold_please","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonweiss%2Fhold_please","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonweiss%2Fhold_please/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonweiss%2Fhold_please/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonweiss%2Fhold_please/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brandonweiss","download_url":"https://codeload.github.com/brandonweiss/hold_please/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonweiss%2Fhold_please/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29954955,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T22:53:01.873Z","status":"ssl_error","status_checked_at":"2026-02-28T22:52:50.699Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["activerecord","activerecord-callbacks","anti-patterns","rails","ruby"],"created_at":"2025-01-26T08:16:37.082Z","updated_at":"2026-02-28T23:31:19.997Z","avatar_url":"https://github.com/brandonweiss.png","language":"Ruby","readme":"# Hold Please\n\nBecause ActiveRecord callbacks are a bad idea. They're way too easy to misuse and should probably be removed from Rails altogether. But, as some Rails core team members in favor of the removal have pointed out, that will probably never happen.\n\nBut that's no reason not to protect yourself and your loved ones.\n\n```ruby\nclass User \u003c ActiveRecord::Base\n\n  before_create do\n    # Bad stuff\n  end\n\nend\n```\n\n```\n\u003e\u003e User.create!\nHoldPlease::NoCallbacks: You really shouldn't use ActiveRecord callbacks\n```\n\n## Installation\n\nAdd the gem to your Gemfile.\n\n```ruby\ngem \"hold_please\"\n```\n\n## Usage\n\nYou don't have to do anything—just don't use ActiveRecord callbacks. If someone does, an exception will be raised letting them know they've done a bad thing. Callbacks used from within gems will continue to work as normal—an exception will only be raised if a callback is used from inside the app.\n\nIt should work on Rails versions 3.0.0 and up.\n\n## Credits\n\nLots of love to [Gary Bernhardt](https://www.destroyallsoftware.com) and his gem  [Do Not Want](https://github.com/garybernhardt/do_not_want) for giving me the idea.\n\nAlso infinite thanks to [Avand](http://avandamiri.com), as always, for brainstorming the perfect name with me and myriad other things.\n\n## Contributing\n\n1. Fork it ( http://github.com/brandonweiss/hold_please/fork )\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrandonweiss%2Fhold_please","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrandonweiss%2Fhold_please","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrandonweiss%2Fhold_please/lists"}