DuckRails 
DuckRails is a development tool.
If it looks like a duck, walks like a duck and quacks like a duck, then it's a duck
It's main purpose is to allow developers to quickly mock API endpoints that for many possible reasons can't reach at a specific time.
How it works
The application allows to create new routes dynamically to which developers can assign static or dynamic responses:
- body
- headers
- content type
- status code
or even cause delays, timeouts etc.
Example
Setting general mock properties
Defining the response body
Setting response headers
Setting some advanced configuration (delays, dynamic headers, content type & status)
Upon save the route is becoming available to the application and you can use the endpoint:
Embedded ruby
When specifying dynamic content of embedded ruby (more options to be added), you can read as local variables:
@parameters: The parameters of the request@request: The request@response: The response
Route paths
You can specify routes and access their parts in the @parameters variable, for example:
/authors/:author_id/posts/:post_id
give you access to the parameters with:
@parameters[:author_id]
@parameters[:post_id]
Quick setup (development environment)
- Clone the repository.
- Execute
bundle installto install the required gems. - Execute
rake db:setupto setup the database. - Execute
rails serverto start the application on the default port.
Better setup (production environment)
- Clone the repository.
- Execute
bundle installto install the required gems. - Export an env variable for your secret key base:
export SECRET_KEY_BASE="your_secret_key_base_here" - Execute
RAILS_ENV=production rake db:setupto setup the database. - Execute
RAILS_ENV=production rake assets:precompileto generate the assets. - Execute
bundle exec rails s -e productionto start the application on the default port.
Database configuration
The application is by default configured to use MySQL. If you want to use another configuration, update the config/database.yml accordingly to match your setup.
Usage tutorial
You can find a tutorial here.
Contributing
- Fork it ( https://github.com/iridakos/duckrails/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request






