{"id":13879580,"url":"https://github.com/hanami/validations","last_synced_at":"2025-07-16T15:32:31.342Z","repository":{"id":19401524,"uuid":"22643222","full_name":"hanami/validations","owner":"hanami","description":"Validation mixin for Ruby objects","archived":false,"fork":false,"pushed_at":"2025-01-01T03:45:00.000Z","size":827,"stargazers_count":208,"open_issues_count":1,"forks_count":45,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-06-19T16:45:24.898Z","etag":null,"topics":["coercion","ruby","validations","whitelisting"],"latest_commit_sha":null,"homepage":"http://hanamirb.org","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/hanami.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":"hanami"}},"created_at":"2014-08-05T12:49:35.000Z","updated_at":"2025-03-01T16:21:06.000Z","dependencies_parsed_at":"2024-05-28T02:30:30.836Z","dependency_job_id":"71f04714-55ff-47a0-bbef-f90f90401ef3","html_url":"https://github.com/hanami/validations","commit_stats":{"total_commits":414,"total_committers":39,"mean_commits":"10.615384615384615","dds":0.3309178743961353,"last_synced_commit":"caddc71d8910a012b554df8a015b85d6f1237925"},"previous_names":["lotus/validations"],"tags_count":57,"template":false,"template_full_name":null,"purl":"pkg:github/hanami/validations","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanami%2Fvalidations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanami%2Fvalidations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanami%2Fvalidations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanami%2Fvalidations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hanami","download_url":"https://codeload.github.com/hanami/validations/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanami%2Fvalidations/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262483013,"owners_count":23318179,"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":["coercion","ruby","validations","whitelisting"],"created_at":"2024-08-06T08:02:25.835Z","updated_at":"2025-07-16T15:32:31.044Z","avatar_url":"https://github.com/hanami.png","language":"Ruby","readme":"# Hanami::Validations\n\nInternal support gem for `Hanami::Action` params validation.\n\n## Status\n\n[![Gem Version](https://badge.fury.io/rb/hanami-validations.svg)](https://badge.fury.io/rb/hanami-validations)\n[![CI](https://github.com/hanami/validations/actions/workflows/ci.yml/badge.svg)](https://github.com/hanami/validations/actions?query=workflow%3Aci+branch%3Amain)\n[![Test Coverage](https://codecov.io/gh/hanami/validations/branch/main/graph/badge.svg)](https://codecov.io/gh/hanami/validations)\n[![Depfu](https://badges.depfu.com/badges/af6c6be539d9d587c7541ae7a013c9ff/overview.svg)](https://depfu.com/github/hanami/validations?project=Bundler)\n\n## Contact\n\n* Home page: http://hanamirb.org\n* Community: http://hanamirb.org/community\n* Guides: https://guides.hanamirb.org\n* Mailing List: http://hanamirb.org/mailing-list\n* API Doc: http://rubydoc.info/gems/hanami-validations\n* Bugs/Issues: https://github.com/hanami/validations/issues\n* Chat: http://chat.hanamirb.org\n\n## Installation\n\n__Hanami::Validations__ supports Ruby (MRI) 3.1+\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem \"hanami-validations\"\n```\n\nAnd then execute:\n\n```shell\n$ bundle\n```\n\nOr install it yourself as:\n\n```shell\n$ gem install hanami-validations\n```\n\n## Usage\n\nInstalling hanami-validations enables support for `params` validation in\n[hanami-controller][controller]’s `Hanami::Action` classes.\n\n```ruby\nclass Signup \u003c Hanami::Action\n  params do\n    required(:first_name)\n    required(:last_name)\n    required(:email)\n  end\n\n  def handle(req, *)\n    puts req.params.class            # =\u003e Signup::Params\n    puts req.params.class.superclass # =\u003e Hanami::Action::Params\n\n    puts req.params[:first_name]     # =\u003e \"Luca\"\n    puts req.params[:admin]          # =\u003e nil\n  end\nend\n```\n\nSee [hanami-controller][controller] for more detail on params validation.\n\n[controller]: http://github.com/hanami/controller\n\n## Contributing\n\n1. Fork it ( https://github.com/hanami/validations/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 a new Pull Request\n\n## Copyright\n\nCopyright © 2014–2024 Hanami Team – Released under MIT License\n","funding_links":["https://github.com/sponsors/hanami"],"categories":["Ruby"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanami%2Fvalidations","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhanami%2Fvalidations","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanami%2Fvalidations/lists"}