{"id":13879016,"url":"https://github.com/thoughtbot/yuri-ita","last_synced_at":"2025-04-12T22:19:17.642Z","repository":{"id":39142580,"uuid":"236179067","full_name":"thoughtbot/yuri-ita","owner":"thoughtbot","description":"Create powerful interfaces for filtering, searching, and sorting collections of items.","archived":false,"fork":false,"pushed_at":"2025-04-11T13:59:48.000Z","size":687,"stargazers_count":87,"open_issues_count":7,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-11T14:56:06.370Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/thoughtbot.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"thoughtbot"}},"created_at":"2020-01-25T14:14:03.000Z","updated_at":"2025-04-11T13:59:51.000Z","dependencies_parsed_at":"2023-12-22T22:23:54.314Z","dependency_job_id":"6f714d75-6bc0-4e48-bdd7-dfb373a824cd","html_url":"https://github.com/thoughtbot/yuri-ita","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/thoughtbot%2Fyuri-ita","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtbot%2Fyuri-ita/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtbot%2Fyuri-ita/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtbot%2Fyuri-ita/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thoughtbot","download_url":"https://codeload.github.com/thoughtbot/yuri-ita/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248638019,"owners_count":21137586,"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-08-06T08:02:06.993Z","updated_at":"2025-04-12T22:19:17.600Z","avatar_url":"https://github.com/thoughtbot.png","language":"Ruby","funding_links":["https://github.com/sponsors/thoughtbot"],"categories":["Ruby"],"sub_categories":[],"readme":"# Yuri-ita\n\n🚧 This gem is in active development 🚧\n\nThe yuri-ita (揺り板), Japanese for \"rocking plate\", is a traditional wooden gold\npan used in Japan.\n\n[Check out a demo application showcasing some of the capabilities of the\nlibrary.][demo]\n\n[demo]: https://yuriita-prerelease.herokuapp.com/movies\n\n## What is Yuri-ita?\n\nThe goal of this library is to provide developers and designers with a powerful\nset of tools to build expressive user interfaces for filtering, searching, and\nsorting data in Ruby on Rails. It does not provide UI components but instead\noffers a simple API that allows you to build your own UI.\n\nYuri-ita's primary interface is through a text-based query language. This\nprovides a means to create behavior as simple or as complex as your needs\nrequire.\n\n\n```\nis:published author:eebs category:rails sort:created-asc \"advanced filtering\"\n```\n\nYuri-ita allows you to define what each input means within your application.\n`is:published` may mean different things in different applications, or even in\ndifferent interfaces within the same application. You define what query to run\nfor each input and Yuri-ita handles combining all the inputs into a valid result.\n\nYou can create static filters that always run the same query:\n\n```ruby\ninput = Yuriita::Inputs::Expression.new(\"is\", \"published\")\n\nYuriita::ExpressionFilter.new(input:) do |relation|\n  relation.where(published: true)\nend\n```\n\nYou can also define dynamic filters that use the input term in the query itself:\n\n\n```ruby\nYuriita::DynamicFilter.new(qualifier: \"author\") do |relation, input|\n  relation.joins(:author).where(users: {username: input.term})\nend\n```\n\nSome inputs can be specified multiple times in the query input and Yuri-ita\ncombines them using AND or OR logical expressions depending on how you've\nconfigured the filter definitions. For example, `category:rails category:ruby`\ncould be defined such that it returns posts in either the \"rails\" *or* \"ruby\"\ncategory.\n\nOther features such as searching, sorting, and generating custom UI are possible\nwith Yuri-ita.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem \"yuri-ita\"\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install yuri-ita\n\nFor instructions on how to integrate Yuri-ita with your Rails application,\n[view the Getting Started documentation](docs/getting_started.md).\n\n## Releases\n\nReleases are signed by louis@thoughtbot.com.\nThe fingerprint is `7B3B 5C4E C777 3530 7E65  EF2B D728 8DAC CCC8 0A03`.\n\n## Contributing\n\nSee the [CONTRIBUTING] document. Thank you, [contributors]!\n\n  [CONTRIBUTING]: CONTRIBUTING.md\n  [contributors]: https://github.com/thoughtbot/yuri-ita/graphs/contributors\n\n## License\n\nOpen source templates are Copyright (c) 2020 thoughtbot, inc.\nIt contains free software that may be redistributed\nunder the terms specified in the [LICENSE] file.\n\n[LICENSE]: /LICENSE\n\n\u003c!-- START /templates/footer.md --\u003e\n## About thoughtbot\n\n![thoughtbot](https://thoughtbot.com/thoughtbot-logo-for-readmes.svg)\n\nThis repo is maintained and funded by thoughtbot, inc.\nThe names and logos for thoughtbot are trademarks of thoughtbot, inc.\n\nWe love open source software!\nSee [our other projects][community].\nWe are [available for hire][hire].\n\n[community]: https://thoughtbot.com/community?utm_source=github\n[hire]: https://thoughtbot.com/hire-us?utm_source=github\n\n\n\u003c!-- END /templates/footer.md --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthoughtbot%2Fyuri-ita","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthoughtbot%2Fyuri-ita","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthoughtbot%2Fyuri-ita/lists"}