What's New in RubyMine 2019.1

RubyMine 2019.1 features major Docker updates, Ruby profiler, full Factory Bot support, custom themes, and more.

Docker

Docker-compose exec

Rethink Docker with docker-compose exec

RubyMine adds support for
docker-compose exec. Simply put, this command when enabled allows you to run and debug applications, install gems and do other development tasks faster than before.

Read How to work with Docker/Docker Compose from RubyMine for details.

Experimental: Run with docker compose.

Speed RubyMine up

In Experimental features, enable ruby.docker.internal.via.exec to speed up RubyMine when you're working with a Docker SDK.

Now you can add gems, run rake tasks, rails commands and other things that update your environment, without rebuilding Docker images.

Recent locations

Recent locations

Recent locations popup

The new Recent Locations popup reinvents the way you navigate your codebase. This popup helps you find the actual code when you only remember what it was about, but don’t have any idea where you have seen it. Start typing to filter the results and jump to the code you need.

Read RubyMine Navigation: Recent Locations Popup for details.

Profiler

Create i18n translation

Profile applications

RubyMine 2019.1 integrates rbspy and provides a native profiler to help you discover parts of code that slow down your application and/or tests.

For a detailed tutorial, read Profile Ruby & Rails Apps With rbspy in RubyMine.

Attach profiler to running app

Attach to running apps

Note that you can attach the profiler (Find action / Attach Profiler to Process) to your running application and investigate it in real time!

Factory Bot

Autocomplete and navigate attributes

When you are adding a factory, RubyMine autocompletes its attributes and, if possible, their values too. For instance, for a Rails model factory, the IDE will autocomplete its fields with their content, and even associations. And of course you can navigate between the definitions and usages of those objects.

Complete factory creation methods in test files

Autocomplete and navigate methods

When you are writing tests, you can autocomplete and navigate to the definitions of factory creation methods, such as create, build, build_stubbed, and others.

Other cool features of Factory Bot, such as sequences, traits, and aliases are also fully supported.

Full MVC integration

We also added factories to the Related files popup (Navigate / Related symbol), and added a gutter that allows you to go to partial factory declarations if they exist.

Call Hierarchy

Call Hierarchy

Investigate method calls

The new Call Hierarchy action helps you dig into methods (“callers”) that use the method you are investigating, the methods that call these callers, and further as deep as you need.

For more information, refer to this blog post.

TruffleRuby

TruffleRuby

TruffleRuby support

RubyMine 2019.1 adds support for TruffleRuby! To switch your current Ruby SDK to TruffleRuby, make sure you have the interpreter installed, and choose it in the Ruby SDK settings.

By the way, in this release we also fixed many issues with Ruby version managers.

JavaScript

TypeScript in Vue

Improved support for TypeScript in Vue apps

RubyMine now uses the TypeScript language service together with its own TypeScript support for any TypeScript code in .vue files. This means that you’ll now get more accurate type checking and type info, you will be able to use the quick-fixes provided by the service, and see all the TypeScript errors in the current file in the TypeScript tool window.

Highlight errors in tests

Highlighting for failed line in test

When you run tests with Jest, Karma, Mocha, or Protractor and some tests fail, you can now see right in the editor where the problem happened. The IDE will use the information from the stack trace and highlight the failed code. On hover, you’ll see the error message from the test runner and you can immediately start debugging the test.

New debugger console

New debugger console

Meet the new, improved interactive debugger console in the JavaScript and Node.js debug tool windows! It now displays objects using a tree view, and it supports styling of log messages with CSS and grouping them using console.group() and console.groupEnd(). You can also filter out any type of log messages.

Completion for npm scripts

Completion for npm scripts

When adding new scripts to the package.json file, the IDE now provides suggestions for available commands provided by the installed packages. After typing node, the IDE will suggest folder and file names. And after typing npm run, you’ll see a list of tasks defined in the current file.

See what's new in WebStorm for more of the JavaScript improvements available in RubyMine 2019.1.

HTML & CSS

HTML and CSS

Updated documentation

The documentation (F1) for CSS properties and HTML tags and attributes now shows up-to-date descriptions and information about the browser support from MDN as well as links to the full MDN articles.

Custom themes

Custom themes

New UI themes

You can now use the new colorful UI themes in RubyMine that are available as plugins. Choose between the Dark Purple, Gray, and Cyan Light themes, or create your own.

Database tools

Improvements in Database tools – New Sources

The database tools in RubyMine have got some cool improvements thanks to our colleagues on the DataGrip team:

  • Support for new databases: Greenplum, Vertica, and Apache Hive
  • Code completion supports combined statements for CREATE and DROP
  • Support for DEFINER attributes in MySQL and MariaDB
  • Support for the Oracle mode in MariaDB
  • You can now set the default folder for a project

Other improvements

  • Ability to run and debug tests with Spring
  • Polymorphic associations: supported source and source_type params
  • Specify alternative gemfiles using bundle.config
  • Specify local gems path using bundle.config
  • I18n: support for default option
  • Improved support for query field methods in Rails models