{"id":17600208,"url":"https://github.com/mwerner/sinatra-rider","last_synced_at":"2026-01-20T20:12:17.713Z","repository":{"id":17610466,"uuid":"82345355","full_name":"mwerner/sinatra-rider","owner":"mwerner","description":"All the extras that Sinatra prefers while performing","archived":false,"fork":false,"pushed_at":"2023-04-18T05:36:11.000Z","size":578,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-12T21:01:01.512Z","etag":null,"topics":["ruby","sinatra"],"latest_commit_sha":null,"homepage":null,"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/mwerner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2017-02-17T22:57:45.000Z","updated_at":"2020-10-12T16:52:12.000Z","dependencies_parsed_at":"2024-10-23T04:37:34.784Z","dependency_job_id":null,"html_url":"https://github.com/mwerner/sinatra-rider","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/mwerner/sinatra-rider","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwerner%2Fsinatra-rider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwerner%2Fsinatra-rider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwerner%2Fsinatra-rider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwerner%2Fsinatra-rider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mwerner","download_url":"https://codeload.github.com/mwerner/sinatra-rider/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwerner%2Fsinatra-rider/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28612165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T18:56:40.769Z","status":"ssl_error","status_checked_at":"2026-01-20T18:54:26.653Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["ruby","sinatra"],"created_at":"2024-10-22T11:09:47.026Z","updated_at":"2026-01-20T20:12:17.696Z","avatar_url":"https://github.com/mwerner.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sinatra::Rider\n\nAll the nice extras Sinatra likes to have when he's on the road.\n\n## Including:\n\n- ActiveRecord\n- Warden\n- Sass\n- Dotenv\n- Better Errors\n- Local copy of bootstrap and font-awesome\n- Autoloading `app` and `lib` directories\n- ~~One dozen blue M\u0026Ms~~\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'sinatra-rider'\n```\n\nThen require it at the top of your server file and register the rider in Sinatra.\n\n```ruby\nrequire 'sinatra/rider'\nclass Server \u003c Sinatra::Base\n  register Sinatra::Rider\n\n  get '/' do\n    erb :index\n  end\nend\n\nrun Server\n```\n\n## Usage\n\n`Sinatra::Rider` provides a quite a few small conveniences.\n\n### ActiveRecord\n\nActiverecord is included and integrated into Sinatra. `Sinatra::Rider` looks for your `database.yml` file in the top level `config` directory. By default Sinatra::Rider uses postgres as its data store via the `pg` gem. This can be changed by including the necessary gem for your data store of choice and configuring your `database.yml` accordingly.\n\n[More Information](https://github.com/janko-m/sinatra-activerecord)\n\n### Warden\n\nWarden is used for authentication. `Sinatra::Rider` sets up Sinatra with `/login` and `/logout` routes. Make sure to set a `SESSION_SECRET` environment variable to properly handle session data.\n\nYou can require authentication for an endpoint by including `authorize!` in sinatra's endpoint block\n\n```ruby\nget '/' do\n  authorize!\n  erb :index\nend\n```\n\n[More Information](https://github.com/jsmestad/sinatra_warden)\n\n### Sass\n\nSass is handled by Sprockets. `Sinatra::Rider` looks for any assets in `assets/stylesheets` and `assets/javascripts` and compiles them as requested.\n\n```scss\n# assets/stylesheets/application.scss\n//= require_tree ./vendor\n//= require base\n```\n\n```html\n# views/layout.erb\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n  \u003clink rel=\"stylesheet\" type=\"text/css\" href=\"/assets/application.css\"\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\nMore Information: [Sass](http://sass-lang.com/) \u0026 [Sprockets](https://github.com/rails/sprockets)\n\n### Dotenv\n\n`Sinatra::Rider` will load any environment variables you have present in a top level `.env` file. This is very useful when using secrets or configuration if you're aiming for [12factor](https://12factor.net/).\n\n[More Information](https://github.com/bkeepers/dotenv)\n\n### Better Errors\n\nBetter Errors are included in the Sinatra configuration when `RACK_ENV` is in development mode. This makes debugging much easier as it provides better context as well as a REPL at the point of the error.\n\n\n[More Information](https://github.com/charliesome/better_errors)\n\n### Locally available copies of bootstrap and font-awesome\n\n`Sinatra::Rider` provides a copy of the latest Bootstrap and Font-Awesome libraries for your usage. Just add the `link` tag to your layout and you're styling!\n\n```html\n\u003chead\u003e\n  \u003ctitle\u003eMy Sinatra::Rider App\u003c/title\u003e\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\"\u003e\n  \u003clink rel=\"stylesheet\" type=\"text/css\" href=\"/assets/bootstrap.css\"\u003e\n  \u003clink rel=\"stylesheet\" type=\"text/css\" href=\"/assets/font-awesome.css\"\u003e\n\u003c/head\u003e\n```\n\nCurrent Versions:\n- Bootstrap: 3.3.7\n- Font-Awesome: 4.7.0\n\nMore Information: [Bootstrap](https://getbootstrap.com/) \u0026 [Font-Awesome](http://fontawesome.io/)\n\n### Autoloading `app` and `lib`\n\nAny ruby files present in `app` or `lib` as siblings in the root directory of your `config.ru` will be automatically required.\n\n```\n- app # Autoloaded\n- config\n- lib # Autoloaded\n- views\n.ruby-version\nconfig.ru\nGemfile\n```\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmwerner%2Fsinatra-rider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmwerner%2Fsinatra-rider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmwerner%2Fsinatra-rider/lists"}