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.


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):


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:


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:


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:


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.


Your RubyMine Team

This entry was posted in Announcement, What's New (EAP) and tagged , . Bookmark the permalink.

17 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?

    • Hey Marat,

      Could you please be more specific? You are also welcome to add your request/suggestions to this task

      • Chris Taylor says:

        It’s possible to configure Rubocop various Cops via .rubocop.yml files. This would be a great feature to have. For example, I could configure my max line length to be something other than the default 80 characters.

        • You can configure your .rubocop.yml file, and RubyMine will surely respect that settings. Or did you mean something else?

          • Georgia Andrews says:

            I just upgraded RubyMine to 2017.3 form a 2016 version and it’s not respecting the .rubocop.yml file I already had in my project. For example, I changed my preferred quotes in my .rubocop.yml file to prefer single quotes instead of double quotes (to match RubyMine’s style), and the Rubocop inspection is not respecting that change.

            • Artem Sarkisov says:

              Hi Georgia! Before we open a ticket, could you please try saving your .rubocop.yml file manually (Ctrl/Cmd + S) to see if RubyMine catches the new rules?

              • Georgia Andrews says:

                That did appear to do it, thanks! I’m so used to RubyMine autosaving that requiring a manual save is either its own bug or should be mentioned on the docs page about how to use Rubocop with RubyMine.

                • Artem Sarkisov says:

                  Yeah normally the autosave should do the trick, so we’ll try to investigate why it doesn’t work in this specific case, and put a note in the doc. Thank you for the report!

  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 *