What is RubyMine Capistrano?

Overview of interesting Ruby gem, designed for multi-server deployment
10 July 2017   1803

Capistrano is remote multi-server automation deployment tool-gem. 


A dynamic, open source programming language with a focus on simplicity and productivity, it has an elegant syntax that is natural to read and easy to write.

Capistrano is written in Ruby, but it can easily be used to deploy any language.
If your language or framework has special deployment requirements, Capistrano can easily be extended to support them.

The scripting and execution of arbitrary tasks is supported, also includes a set of sane-default deployment workflows.

Capistrano can be used to:

  • Reliably deploy web application to any number of machines simultaneously, in sequence or as a rolling set
  • To automate audits of any number of machines (checking login logs, enumerating uptimes, and/or applying security patches)
  • To script arbitrary workflows over SSH
  • To automate common tasks in software teams.
  • To drive infrastructure provisioning tools such as chef-soloAnsible or similar.

Capistrano is also scriptable, and can be integrated with any other Ruby software to form part of a larger tool.

It looks like this:

capistranoCapistrano interface

Addionally, Capistrano includes: 

  • Interchangeable output formatters (progress, pretty, html, etc)
  • Easy to add support for other source control management software.
  • A rudimentary multi-console for running Capistrano interactively.
  • Host and Role filters for partial deploys, or partial-cluster maintenance.
  • Recipes for the Rails asset pipelines, and database migrations.
  • Support for complex environments.
  • A sane, expressive API.

Main features of Capistrano are:

  • Strong conventions
  • Multiple stages
  • Parallel execution
  • Server roles
  • Community driven

Other useful information about Capistrano can be found on it's website.


Let's figure out how to install this gem.


  • Ruby version 2.0 or higher on your local machine (MRI or Rubinius)
  • A project that uses source control (Git, Mercurial, and Subversion support is built-in)
  • The SCM binaries (e.g. githg) needed to check out your project must be installed on the server(s) you are deploying to
  • Bundler, along with a Gemfile for your project, are recommended

Install the Capistrano gem

Add Capistrano to your project's Gemfile:

group :development do
  gem "capistrano", "~> 3.8"

Then run Bundler to ensure Capistrano is downloaded and installed:

$ bundle install

Capistrano with RubyMine


A smart and easy to use integrated development environment for the Ruby language and Rails web framework.

Let's see how installation of Capistrano will effect RubyMine work. 

Changes to the UI

Once installed, Capistrano introduces the following changes to the RubyMine UI:

  • Capistrano node appears in the Tools menu, with the nested commands Capify application and Run Capistrano task.
  • Capistrano run/debug configuration becomes available.

Capistrano support

Capistrano support in RubyMine includes:

  • Syntax and error highlighting.
  • Code completion in Capfile.
  • Structure view for Capfile and deploy.rb.

So doing, the Structure view shows Capistrano tasks:

  • capability to run Capistrano tasks.
  • Available Capistrano tasks appear in the Go to Symbol suggestion list:

You can have more information about RubyMine Capistrano support at a relevant section of JetBrains website.

Capistrano overview


Capistrano is interesting and powerful tool. There are many ways to automate deployments, from simple scripts to complex toolchains. Capistrano sits somewhere in the middle: it automates what you already know how to do manually with SSH, but in a repeatable, scalable fashion.

RubyMine 2018.2 to be Released

Great news for Ruby developers - new version of popular IDE available now
27 July 2018   1790

Major summer update of the integrated development environment RubyMine from JetBrains under the number 2018.2 released. Among the innovations - improving the work with the code, support for new version managers, re-testing only for failed tests and much more.

Code analysis

The new version of IDE has received an improved type inference that allows to better read the types of elements in blocks, arrays and hashes. This feature improves code autocompletion and navigation throughout the project:

Element CompletionElement Completion

In addition, RubyMine now correctly recognizes models using polymorphic associations, and offers them full support for "smart" functions.

Version Managers

The updated development environment now supports chruby and asdf. Moreover, now all version managers are available in WSL, Docker, SSH and other remote connections.


RubyMine 2018.2 allows you to retest only those tests that have not been tested. According to the developers, this frees the user from manually viewing each failed check. The new function also works with the rake test and rake spec presets:

Rerun Failed Tests
Rerun Failed Tests


In this update, developers paid attention to the YAML data serialization format. Now its code can be formatted directly in the IDE and use all the functions of autocomplete and navigation by code. Moreover, the new version of RubyMine provides automatic filling of YAML data structures that have JSON Schema files, and the ability to copy / paste the key path to the value in .yml files.


Support for version control in RubyMine 2018.2 has received several new features:

  • files with a merge conflict are now grouped in a separate node;
  • a new action Browse Repository at Revision allows you to examine the state of the repository after each revision;
  • It was possible to skip the Push action during the Commit and Push command or use it only for protected branches;
  • you can connect an unlimited number of accounts to GitHub and select the main one for each project.

Other improvements

In addition to general performance improvements, the new version of IDE brought new icons, a dark theme for MacOS, support for the Touch Bar, improved support for JS, TypeScript and CoffeeScript, which you can see in the overview of the WebStorm 2018.2 IDE update, and connect the debugger to remote processes without having to reboot .