{"id":23155199,"url":"https://github.com/rawongithub/grapethor","last_synced_at":"2025-07-18T08:06:23.381Z","repository":{"id":56875155,"uuid":"180231459","full_name":"rawongithub/grapethor","owner":"rawongithub","description":"Grape REST-like API generator based on Thor","archived":false,"fork":false,"pushed_at":"2025-01-03T14:00:34.000Z","size":4648,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-10T12:37:06.351Z","etag":null,"topics":["api","crud","gem","generator","grape","grapethor","rest","ruby","scaffold","thor"],"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/rawongithub.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2019-04-08T20:55:31.000Z","updated_at":"2025-01-03T14:00:38.000Z","dependencies_parsed_at":"2024-12-17T20:15:38.079Z","dependency_job_id":"03738c93-46be-480e-be9c-de5db6a3ae1d","html_url":"https://github.com/rawongithub/grapethor","commit_stats":{"total_commits":22,"total_committers":2,"mean_commits":11.0,"dds":0.2272727272727273,"last_synced_commit":"af50b10042c262dbe99c709e23ad12062a2aea7b"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/rawongithub/grapethor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rawongithub%2Fgrapethor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rawongithub%2Fgrapethor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rawongithub%2Fgrapethor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rawongithub%2Fgrapethor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rawongithub","download_url":"https://codeload.github.com/rawongithub/grapethor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rawongithub%2Fgrapethor/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265725060,"owners_count":23817950,"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":["api","crud","gem","generator","grape","grapethor","rest","ruby","scaffold","thor"],"created_at":"2024-12-17T20:15:33.304Z","updated_at":"2025-07-18T08:06:23.365Z","avatar_url":"https://github.com/rawongithub.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Gem Version](https://badge.fury.io/rb/grapethor.svg)](https://badge.fury.io/rb/grapethor)\n[![Build Status](https://travis-ci.org/rawongithub/grapethor.svg?branch=master)](https://travis-ci.org/rawongithub/grapethor)\n[![Maintainability](https://api.codeclimate.com/v1/badges/15145f8728d14b65b42c/maintainability)](https://codeclimate.com/github/rawongithub/grapethor/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/15145f8728d14b65b42c/test_coverage)](https://codeclimate.com/github/rawongithub/grapethor/test_coverage)\n\n# GrapeThor\n\nGrape REST-like API generator based on Thor.\n\n## Installation\n\nInstall it yourself as:\n```\ngem install grapethor\n```\n\n## Usage\n\n### Get some help\n\n```\ngrapethor help\n\nCommands:\n  grapethor api VERSION               # Creates new API within application\n  grapethor endpoint RESOURCE [NAME]  # Creates new Endpoint within API\n  grapethor help [COMMAND]            # Describe available commands or one specific command\n  grapethor new NAME                  # Creates new Grape application\n  grapethor resource NAME             # Creates new Resource within API\n  grapethor version                   # Displays Grapethor version\n```\n\n### Create application\n```\ngrapethor help new\n\nUsage:\n  grapethor new NAME\n\nOptions:\n  -p, [--path=PATH]                # Relative path to place application directory\n                                   # Default: .\n  -x, [--prefix=PREFIX]            # Add Application URL prefix\n                                   # Default: api\n  -d, [--db=DB]                    # Use specific database\n                                   # Default: sqlite\n                                   # Possible values: sqlite, postgresql, mysql\n  -o, [--orm=ORM]                  # Use specific ORM\n                                   # Default: activerecord\n                                   # Possible values: activerecord\n  -s, [--server=SERVER]            # Preconfigure web server\n                                   # Default: thin\n                                   # Possible values: thin, puma\n  -t, [--test=TEST]                # Use specific test framework\n                                   # Default: minitest\n                                   # Possible values: minitest, rspec\n      [--docker], [--no-docker]    # Use docker\n                                   # Default: true\n  -l, [--license=LICENSE]          # Add software license information\n                                   # Default: mit\n                                   # Possible values: mit, apache2, freebsd, newbsd, gpl2, gpl3, mpl2, cddl1, epl1\n  -c, [--copyright=COPYRIGHT]      # Add copyright information within license file\n  -r, [--ruby=RUBY]                # Ruby version for application\n                                   # Default: 2.5.3 (current ruby version)\n      [--swagger], [--no-swagger]  # Generate swagger documentation and install swagger-ui\n                                   # Default: true\n```\nLicense types available for `--license` option:\n\n- `mit`     - [MIT License](http://opensource.org/licenses/MIT)\n- `apache2` - [Apache-2.0 License](https://opensource.org/licenses/Apache-2.0)\n- `freebsd` - [FreeBSD License](https://opensource.org/licenses/BSD-2-Clause)\n- `newbsd`  - [New BSD License](https://opensource.org/licenses/BSD-3-Clause)\n- `gpl2`    - [GPL-3.0 License](https://opensource.org/licenses/GPL-2.0)\n- `gpl3`    - [GPL-2.0 License](https://opensource.org/licenses/GPL-3.0)\n- `mpl2`    - [MPL-2.0 License](https://opensource.org/licenses/MPL-2.0)\n- `cddl1`   - [CDDL-1.0 License](https://opensource.org/licenses/CDDL-1.0)\n- `epl1`    - [EPL-1.0 License](https://opensource.org/licenses/EPL-1.0)\n\n### Create API\n```\ngrapethor help api\n\nUsage:\n  grapethor api VERSION\n\nOptions:\n  -p, [--path=PATH]            # Relative path to application directory\n                               # Default: .\n\nCreates new API within application\n```\nDo not forget to ```cd``` into application directory before run this command. Otherwise use ```--path``` option.\n\nMultiple API versions may be created for single application.\n\n### Create Resource\n\n```\ngrapethor help resource\n\nUsage:\n  grapethor resource NAME\n\nOptions:\n  -p, [--path=PATH]             # Relative path to application directory\n                                # Default: .\n  -v, [--version=VERSION]       # API version tag\n                                # Default: v1\n  -a, [--attrs=ATTRIBUTE:TYPE]  # Model attributes (use proper types or specific ORM)\n\nCreates new Resource within API\n```\nMultiple RESOURCES may be created for single API version\n\nNote: ':id' request path parameter is implicitly used as primary key. There is no need to include it with '-a' option.\n\nModel attribute types available for specific ORM:\n\n- activerecord: `bigint, binary, boolean, date, datetime, decimal, float, integer, numeric, string, text, time`\n\n### Create Endpoint\n```\ngrapethor help endpoint\n\nUsage:\n  grapethor endpoint RESOURCE [NAME]\n\nOptions:\n  -p, [--path=PATH]         # Relative path to application directory\n                            # Default: .\n  -v, [--version=VERSION]   # API version tag\n                            # Default: v1\n  -m, [--method=METHOD]     # HTTP request method\n                            # Default: GET\n                            # Possible values: GET, POST, PUT, DELETE\n  -d, [--desc=DESC]         # Endpoint description\n  -a, [--params=key:value]  # Request resource (path) param\n  -q, [--query=key:value]   # Request query params\n\nCreates new Endpoint within API\n```\nMultiple ENDPOINTS may be created for single API version.\n\nThis command may be also used for an addition into existing RESOURCE CRUD.\n\n\n## How-To\n\n[Sample Workflow](https://github.com/rawongithub/grapethor/wiki/Sample-workflow)\n\n## Development\n\nAfter checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.\n\nTo install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/rawongithub/grapethor.\n\n\n## License\n\nThe software is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frawongithub%2Fgrapethor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frawongithub%2Fgrapethor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frawongithub%2Fgrapethor/lists"}