README.md in stairs-0.4.2 vs README.md in stairs-0.5.0

- old
+ new

@@ -1,15 +1,24 @@ # Stairs -It's a pain to setup new developers. Stairs is a utility and framework from -which to write scripts for faster and easier setup of apps in new development -environments. Scripts try to automate as much as possible and provide -interactive prompts for everything else. +It's a pain to set up new developers on your codebase. Stairs makes it easy. -Stairs currently supports writing environment variables for rbenv-vars, RVM, -and dotenv. +### The Problem +Apps these days come with dependencies—S3, Facebook, Twitter, Zencoder, etc. We +can stub certain things in development, but we also want to make sure we're +developing in a realistic setting. Satisfying all of these requirements can +really slow down onboarding time when adding new developers to your existing +codebase. + +### The Solution + +Every codebase should come with a script to set itself up. An interactive +README, if you will. __Stairs__ aims to provide the tools to make writing these +scripts fast and easy. Scripts try to automate as much as possible and provide +interactive prompts for everything else. + [![Build Status](https://travis-ci.org/patbenatar/stairs.png?branch=master)](https://travis-ci.org/patbenatar/stairs) [![Code Climate](https://codeclimate.com/github/patbenatar/stairs.png)](https://codeclimate.com/github/patbenatar/stairs) ## Setup @@ -60,42 +69,12 @@ rake "db:setup" finish "Just run rails s and sidekiq to get rolling!" ``` -### Example CLI +[See Example CLI](#example-cli) -Given the above script, the CLI might look like this. - -``` -$ rake newb -Looks like you're using rbenv to manage environment variables. Is this correct? (Y/N): Y -= Running script setup.rb -== Running bundle -... -== Completed bundle -== Running S3 -AWS access key: 39u39d9u291 -AWS secret: 19jd920i10is0i01i0s01ks0kfknkje -Do you have an existing bucket? (Y/N): Y -Bucket name (leave blank for app-dev): my-cool-bucket -== Completed S3 -== Starting Zencoder -This step is optional, would you like to perform it? (Y/N): N -== Completed Zencoder -== Starting Misc -Cool check it value: w00t -== Completed Misc -== Running db:setup -... -== Completed db:setup -== All done! -Run rails s and sidekiq to get rolling! -``` - -## DSL - ### Collecting values ```ruby value = provide "Something" value = provide "Another", required: false provide "More", default: "a-default" @@ -109,10 +88,12 @@ end dinner = choice "Meat or vegetables?", ["Meat", "Vegetables"] ``` ### Setting env vars +Stairs currently supports writing environment variables for rbenv-vars, RVM, and dotenv. + ```ruby env "NAME", value ``` ### Writing files @@ -153,24 +134,60 @@ ``` ## Plugins for common setups ### Built-in + * `:secret_token` sets a secure random secret token +* `:postgresql` quickly setup database.yml for use with PostgreSQL +* `:facebook` interactive prompt for setting Facebook app credentials -### Available as extension gems +### Available as independent gems + +Any plugin that has specific dependencies on third party gems is shipped +independently to avoid maintaining those dependencies within Stairs. + * `:s3` interactive prompt for setting AWS + S3 bucket access credentials: [patbenatar/stairs-steps-s3][s3] * `:balanced` automatically creates a test Marketplace on Balanced: [patbenatar/stairs-steps-balanced][balanced] -* `:facebook` interactive prompt for setting Facebook app credentials: - [patbenatar/stairs-steps-facebook][facebook] ### Defining custom plugins Steps inherit from `Stairs::Step` and live in `Stairs::Steps`, have a title, description, and implement the `run` method. See those included and in the various extension gems for examples. + +## Example CLI + +Given the [example script above](#defining-scripts), the CLI would look like +this: + +``` +$ rake newb +Looks like you're using rbenv to manage environment variables. Is this correct? (Y/N): Y += Running script setup.rb +== Running bundle +... +== Completed bundle +== Running S3 +AWS access key: 39u39d9u291 +AWS secret: 19jd920i10is0i01i0s01ks0kfknkje +Do you have an existing bucket? (Y/N): Y +Bucket name (leave blank for app-dev): my-cool-bucket +== Completed S3 +== Starting Zencoder +This step is optional, would you like to perform it? (Y/N): N +== Completed Zencoder +== Starting Misc +Cool check it value: w00t +== Completed Misc +== Running db:setup +... +== Completed db:setup +== All done! +Run rails s and sidekiq to get rolling! +``` ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`)