RubyMine 2017.1 EAP 2: Create gemsets quickly & work with RuboCop

Hi everyone,

RubyMine 2017.1 EAP 2 (171.2272.16) is out and available for download. Besides a number of bug fixes, this Early Access Program provides a way to create RVM gemsets for Rails applications right from the New Project wizard, and features RuboCop support.

Creating Gemsets From the New Project Wizard

If you haven’t used gemsets before, you might want to know that a gemset is a container used to keep separate gems for each project. Gemsets allow you to change gems and their versions in one project without being afraid of affecting your other projects. Jump to the RVM documentation to learn how gemsets can improve your coding experience.

To create a gemset for your new Rails project in RubyMine, follow these steps:

Open RubyMine and click Create New Project from the Welcome screen (File | New Project). Choose a new Rails application.

creatiing_gemset_rubymine

As you can see in the GIF above, when you specify a name for your project, RubyMine automatically suggests a similarly named gemset. Click Create to have the IDE install a gemset for your new project. Leave the box checked so that the gems are put in this gemset when generating your Rails project.

Since you don’t have Rails set up in your newly created gemset, you can install any available version in the Rails Version field (this might take up to several minutes):

create_rails_cut

After installing Rails, click Create in the lower right corner of the New Project wizard. The IDE will generate your Rails application with all the gems mounted in the preconfigured gemset. The IDE will also create .ruby-gemset and .ruby-version files, specifying the gemset and the Ruby version used in the project.

Go to Preferences | Languages & Frameworks | Ruby SDK and Gems to see your SDK configurations and available gems:

Gemset_Preferences

Note that you may face issues when creating a gemset for a New Rails API. This problem will be fixed in the next stable release (v2017.1).

RuboCop Support

Now the IDE interacts with RuboCop, analyzing code in the background and displaying errors according to the RuboCop’s severity table:

SEVERITY_MAP.put("refactor", HighlightSeverity.WEAK_WARNING);
SEVERITY_MAP.put("convention", HighlightSeverity.WEAK_WARNING);
SEVERITY_MAP.put("warning", HighlightSeverity.WARNING);
SEVERITY_MAP.put("error", HighlightSeverity.ERROR);
SEVERITY_MAP.put("fatal", HighlightSeverity.ERROR);

RuboCop inspections are treated the same way as other code inspections:

rubocop

If the project SDK has the rubocop gem installed, the RuboCop inspection will be enabled by default. Otherwise, RubyMine will suggest to install the missing gem and enable the inspection:

rubocop_suggest

Other improvements

Here are some other improvements for this EAP:

  • The inspection of frozen strings modification has been fixed and now doesn’t show false warnings.
  • Underscores in the middle of the words now respect CamelHumps settings correctly in markdown files.
  • The ability to change language level for JRuby and Rubinius, which had previously been removed, has been reinstated.

Follow this link for the full list of changes.

Download the newest RubyMine EAP and share your feedback with us! Leave your comments below, and submit your feature requests and bug reports to our tracker.

Cheers!

Your RubyMine Team

This entry was posted in Announcement, WhatsMining and tagged , . Bookmark the permalink.

11 Responses to RubyMine 2017.1 EAP 2: Create gemsets quickly & work with RuboCop

  1. Pingback: RubyMine 2017.1 EAP 3: Updated New Ruby Class Dialog, Fixed Markdown | RubyMine Blog

  2. Raido says:

    Is the “Reformat Code” action also following RuboCop style guidelines?

  3. Marat Amerov says:

    Is there support .rubocop.yml config?

  4. Pingback: RubyMine 2017.1 Released: Docker, RuboCop, Puppet, Test Generation for Rails, and More! | RubyMine Blog

  5. Pingback: RubyMine 2017.1リリース: Docker, RuboCop, Puppet, RoRのテスト生成など! | JetBrains ブログ

  6. Pingback: RubyMine 2017.2 Release Candidate: Quick-fixes for RuboCop | RubyMine Blog

Leave a Reply

Your email address will not be published. Required fields are marked *