will / pliny

Write excellent APIs in Ruby

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pliny

Opinionated template Sinatra app for writing excellent APIs in Ruby.

Build Status

It bundles some of the patterns we like to develop these apps:

  • Config: ENV wrapper for explicit defining what config vars are mandatory and optional
  • Endpoints: the Sinatra equivalent of a Rails Controller
  • Initializers: tiny files to configure libraries/etc (equivalent of Rails)
  • Mediators: plain ruby classes to manipulate models
  • Models: very thin wrappers around the database

And gems/helpers to tie these together and support operations:

Getting started

First make sure the following is installed:

Then install the gem:

$ gem install pliny

And initialize a new app:

$ pliny-new myapp
$ cd myapp && bin/setup

Pliny also bundles some generators to help you get started:

$ bundle exec pliny-generate model artist
created model file ./lib/models/artist.rb
created migration ./db/migrate/1395873224_create_artist.rb
created test ./test/models/artist_test.rb

$ bundle exec pliny-generate mediator artists/creator
created base mediator ./lib/mediators/base.rb
created mediator file ./lib/mediators/artists/creator.rb
created test ./test/mediators/artists/creator_test.rb

$ bundle exec pliny-generate endpoint artists
created endpoint file ./lib/endpoints/artists.rb
add the following to lib/routes.rb:
  mount Endpoints::Artists
created test ./spec/endpoints/artists_spec.rb
created test ./spec/acceptance/artists_spec.rb

$ bundle exec pliny-generate migration fix_something
created migration ./db/migrate/1395873228_fix_something.rb

$ bundle exec pliny-generate schema artists
created schema file ./docs/schema/schemata/artist.yaml
rebuilt ./docs/schema.json

To test your application:

bundle exec rake

Or to run a single test suite:

bundle exec rspec spec/acceptance/artists_spec.rb

Pliny comes with several rake tasks:

rake db:create        # Create the database
rake db:drop          # Drop the database
rake db:migrate       # Run database migrations
rake db:nuke          # Nuke the database (drop all tables)
rake db:reset         # Reset the database
rake db:rollback      # Rollback the database
rake db:schema:dump   # Dump the database schema
rake db:schema:load   # Load the database schema
rake db:schema:merge  # Merges migrations into schema and removes them
rake db:seed          # Seed the database with data
rake db:setup         # Setup the database
rake schema           # Rebuild schema.json
rake test             # Run tests

Development

Run tests:

bundle install
git submodule update --init
rake

Meta

Created by Brandur Leach and Pedro Belo.

About

Write excellent APIs in Ruby


Languages

Language:Ruby 100.0%