{"id":13777020,"url":"https://github.com/zachpendleton/snfn","last_synced_at":"2025-05-11T10:31:33.020Z","repository":{"id":59155948,"uuid":"2199463","full_name":"zachpendleton/snfn","owner":"zachpendleton","description":"Sinatra template generator","archived":false,"fork":false,"pushed_at":"2011-08-24T14:08:04.000Z","size":402,"stargazers_count":22,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-25T06:17:01.532Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://github.com/zachpendleton/snfn","language":"JavaScript","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/zachpendleton.png","metadata":{"files":{"readme":"README.mdown","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":"2011-08-12T22:13:03.000Z","updated_at":"2024-03-17T14:16:20.000Z","dependencies_parsed_at":"2022-09-13T18:13:24.977Z","dependency_job_id":null,"html_url":"https://github.com/zachpendleton/snfn","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zachpendleton%2Fsnfn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zachpendleton%2Fsnfn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zachpendleton%2Fsnfn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zachpendleton%2Fsnfn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zachpendleton","download_url":"https://codeload.github.com/zachpendleton/snfn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253551802,"owners_count":21926363,"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-03T18:00:36.495Z","updated_at":"2025-05-11T10:31:31.614Z","avatar_url":"https://github.com/zachpendleton.png","language":"JavaScript","readme":"# Snfn - A Sinatra application generator\n\nSnfn is an opinionated generator for Sinatra projects. It\ncan be configured using the following options:\n\n*  `-d` Database. Options are \"postgres,\" \"mysql,\" \"sqlite\",\n   and \"mongo.\" Default is \"sqlite.\"\n*  `--redis` Include Redis configuration options.\n* `--no-database` Don't include any database config options.\n* `--no-heroku` Don't include Heroku config options.\n\n## Installation\n\n    gem install snfn\n\n## Example\n\nStandard Heroku app, using sqlite for local development and\nPostgreSQL for production.\n\n    snfn my_app\n\nApp without Heroku options and mysql config.\n\n    snfn my_app -d mysql --no-heroku\n\n## Architecture\n\nThe template autoloads files in config/initializers and\n/lib. Database configuration options are stored in `config/db.yml`\nand are loaded via `config/initializers/database.rb`.\n\nRight now Snfn only comes out of the box with support for Unicorn, (the\nconfig file is stored at config/unicorn.rb), but changing it out for\nthin or mongrel is pretty trivial.\n\n## DB Setup\n\n[Sequel](http://sequel.rubyforge.org) is used as an ORM for\nrelational databases, and migrations are stored in db/migrate.\nMigrations can be run using the rake command `rake rb:migrate`.\n\nMongoMapper is used for Mongo apps, with the config options\nstored in the same files as relational databases (`config/db.yml`\nand `config/initializers/database.rb`).\n\n### More information\n\n*  [Sequel Migrations](http://sequel.rubyforge.org/rdoc/files/doc/migration_rdoc.html)\n*  [Sequel Models](http://sequel.rubyforge.org/rdoc/classes/Sequel/Model.html)\n*  [MongoMapper](http://mongomapper.com)\n\nIf there is any interest in supporting other ORMs like DataMapper or\nActiveRecord, either please let me know or implement it yourself and\nsend a pull request.\n\n## Set up on Heroku\n\nBy default, Snfn creates an app with the proper options for deployment\non Heroku. To get Snfn up and running on Heroku:\n\n1.  Install your gems with `bundle install`\n2.  Create a new git repository: `git init .`\n3.  Make your first commit: `git add .; git commit -m \"initial commit\"`\n4.  Create a new heroku app: `bundle exec heroku create --stack cedar`\n5.  Deploy the app: `git push heroku master`\n\n### Heroku Add-Ons\n\nTo use PostgreSQL, MongoDB, or Redis on Heroku, you'll need to add\nthe proper Heroku add-ons. The commands to do this are, respectively:\n\n    heroku addons:add shared-database # PostgreSQL\n    heroku addons:add mongolab:starter # MongoDB\n    heroku addons:add redistogo:nano # Redis\n\n## Contributing to snfn\n\n*  Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet\n*  Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it\n*  Fork the project\n*  Start a feature/bugfix branch\n*  Commit and push until you are happy with your contribution\n*  Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.\n*  Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.\n\n## Copyright\n\nCopyright (c) 2011 Zach Pendleton. See LICENSE.txt for\nfurther details.\n\n","funding_links":[],"categories":["Generators"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzachpendleton%2Fsnfn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzachpendleton%2Fsnfn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzachpendleton%2Fsnfn/lists"}