Advanced Usage

Extending Padrino Projects

As you being building real projects with Padrino, you will quickly require additional functionality not built into Padrino itself. Thankfully finding and using modular libraries that add additional functionality to your Sinatra and Padrino applications is quite painless.

Managing Dependencies with Bundler

In order to manage dependencies for a project, Padrino relies on another gem called Bundler. A default Padrino Gemfile looks akin to this:

# Gemfile
source ''

# Project requirements
gem 'rake'

# ...more gems...

# Padrino Stable Gem
gem 'padrino', '0.13.1'

All dependencies and libraries required for your project should be declared in the Bundler Gemfile which is generated automatically with every Padrino application. Once the dependencies have been declared, simply run Bundler's install command:

$ bundle

This will resolve and install all the required libraries. Check out the Bundler documentation for more details about how this works.

Padrino Recipes

The best extensions to look for are those that have already been included as "recipes" in our padrino-recipes repository. Any recipe included there represents a single command installation of the specified functionality. For instance, suppose you want to setup pagination in your application for a resource. Installing the will_paginate gem is as simple as applying the recipe:

$ padrino g plugin will_paginate

This will install that gem into your project (and Gemfile) automatically.

Discovering Libraries

If you can't find a recipe in the padrino-recipes repository, then be sure to search for Rack middlewares or Sinatra compatible libraries to use in your app.

And, of course, never underestimate searching GitHub to find Rack or Sinatra compatible repositories. Any Rack/Sinatra/Padrino library will generally work seamlessly in Padrino projects. Consider adding a recipe for your favorite extensions!

last updated: 2022-02-22

comments powered by Disqus