New version of RubyMine: Chef, Puppet, EditorConfig and more
At JetBrains, we sincerely believe that programming is by no means limited to writing code. To program means to constantly develop, increase your knowledge, improve skills, using the best tools. If you are familiar with the parable of two lumberjacks , in which the one who does not forget to sharpen his ax turns out to be more skilled, then you will understand our desire to hone development tools with each next release. The latest release of RubyMine, our development environment for Ruby and Rails, which we want to talk more about in this post, was no exception. By the way, yesterday the first update became available for download - RubyMine 7.0.1.

Chef's configuration management system is now supported through a separate plugin that is compatible with RubyMine 7 and IntelliJ IDEA 14 and allows you to recognize and create books , recipes and resources in the IDE.
If you installed Chef gem and opened a project containing a folder with the recipes directory with a ruby file inside, then when you open this file, RubyMine will automatically recognize it as a recipe and offer to add the corresponding directory as a book:

The project structure can be changed at any time in the settings (Settings | Project Structure):

After the settings are completed, in the recipe files auto-completion of the code becomes available both for resources:

and for their attributes:

Support for the Puppet language in the IDE is also provided through a separate plugin compatible with RubyMine 7 and IntelliJ IDEA 14, which has been significantly improved and sharpened for working with Puppet manifests .
First of all, we improved the navigation mechanism , since manifests can contain a large number of definitions of resources, classes, nodes, variables, etc. that need to be processed correctly:

Navigation is carried out not only among the manifestos created by the user, but also according to the modules installed from Puppet Forge. However, it should be noted that the modules used must be located in the default directory or in the directory specified in the puppet.conf configuration file :

The plugin also implements functions traditional for our IDEs, such as code completion , refactoring , inspections , search for uses , quick documentation , code formatting , etc., taking into account the project structure and installed modules:

RubyMine 7 added support for the EditorConfig format , which allows you to use the same code style settings in different projects and different editors. Formatting rules are described in the editorconfig configuration file , when you add them to the project root, the rules are automatically recognized and applied:

Note that the formatting rules described in .editorconfig by default take precedence over the IDE settings. You can turn off EditorConfig in the Editor | Code Style.
In addition, the option Detect and use existing file indents for editing appeared in the formatting settings (Editor | Code Style), which allows the editor to define and use the current formatting settings in the file:

Thus, even if the code style settings (such as Use Tab Character and Indent Size) in the edited file are different from the IDE settings, they will be saved.
When starting a project in debug mode, an interactive console is now available , which allows you to execute commands directly in the IDE using the code completion function, as well:

When running tests in debug mode, the interactive console is available as a separate tab:

In addition, RubyMine 7 added new convenient debugger function: now the values of objects are displayed directly in the editor next to the code:

Thanks to the ideas and comments of our users, we were able to make the code analysis in the new version of the IDE even smarter. Now, YARD attributes and RDoc methods are also correctly recognized as method attributes :

Remote Ruby interpreters running RVM can now be added as a project SDK:

In addition, we have improved support for remote SDKs based on vagrant configuration files.
Using the Scratch Files function, you can now experiment and prototype code directly in the editor without creating new files in the project. By shortcut Shift-Cmd-N / Ctrl + Alt + Shift + Insert, you can create a temporary file by selecting the desired file type. All editor features, such as code completion and inspections, are available in Scratch files:

RubyMine 7 also inherited from WebStorm 9 a number of improvements for web development, including preview for Emmet , support for the latest versions of CSS3 , Stylus and Sass , code reformatting for Slim and HAML , support for ReactJS and JSX / ES6 , etc.
We can talk for a long time to come . about many other, small, but no less pleasant and useful innovations of RubyMine 7. But isn’t it better to just try the new version in business? You can learn more about RubyMine 7 and download the free 30-day trial version of the IDE on our website.. The update is free for all users who bought or updated their licenses on November 13, 2013 or later. We also remind you that all JetBrains IDEs are now free for students .
We will try to answer your questions in the comments, and we will be glad to any new requests in our bug tracker .
Program with pleasure!
-JetBrains Team

Integration with Chef
Chef's configuration management system is now supported through a separate plugin that is compatible with RubyMine 7 and IntelliJ IDEA 14 and allows you to recognize and create books , recipes and resources in the IDE.
If you installed Chef gem and opened a project containing a folder with the recipes directory with a ruby file inside, then when you open this file, RubyMine will automatically recognize it as a recipe and offer to add the corresponding directory as a book:

The project structure can be changed at any time in the settings (Settings | Project Structure):

After the settings are completed, in the recipe files auto-completion of the code becomes available both for resources:

and for their attributes:

Puppet language support
Support for the Puppet language in the IDE is also provided through a separate plugin compatible with RubyMine 7 and IntelliJ IDEA 14, which has been significantly improved and sharpened for working with Puppet manifests .
First of all, we improved the navigation mechanism , since manifests can contain a large number of definitions of resources, classes, nodes, variables, etc. that need to be processed correctly:

Navigation is carried out not only among the manifestos created by the user, but also according to the modules installed from Puppet Forge. However, it should be noted that the modules used must be located in the default directory or in the directory specified in the puppet.conf configuration file :

The plugin also implements functions traditional for our IDEs, such as code completion , refactoring , inspections , search for uses , quick documentation , code formatting , etc., taking into account the project structure and installed modules:

New features for customizing code style
RubyMine 7 added support for the EditorConfig format , which allows you to use the same code style settings in different projects and different editors. Formatting rules are described in the editorconfig configuration file , when you add them to the project root, the rules are automatically recognized and applied:

Note that the formatting rules described in .editorconfig by default take precedence over the IDE settings. You can turn off EditorConfig in the Editor | Code Style.
In addition, the option Detect and use existing file indents for editing appeared in the formatting settings (Editor | Code Style), which allows the editor to define and use the current formatting settings in the file:

Thus, even if the code style settings (such as Use Tab Character and Indent Size) in the edited file are different from the IDE settings, they will be saved.
Improved debugger
When starting a project in debug mode, an interactive console is now available , which allows you to execute commands directly in the IDE using the code completion function, as well:

When running tests in debug mode, the interactive console is available as a separate tab:

In addition, RubyMine 7 added new convenient debugger function: now the values of objects are displayed directly in the editor next to the code:

More intelligent code analysis
Thanks to the ideas and comments of our users, we were able to make the code analysis in the new version of the IDE even smarter. Now, YARD attributes and RDoc methods are also correctly recognized as method attributes :

Support RVM as a remote project SDK
Remote Ruby interpreters running RVM can now be added as a project SDK:

In addition, we have improved support for remote SDKs based on vagrant configuration files.
Scratch files
Using the Scratch Files function, you can now experiment and prototype code directly in the editor without creating new files in the project. By shortcut Shift-Cmd-N / Ctrl + Alt + Shift + Insert, you can create a temporary file by selecting the desired file type. All editor features, such as code completion and inspections, are available in Scratch files:

And much more
RubyMine 7 also inherited from WebStorm 9 a number of improvements for web development, including preview for Emmet , support for the latest versions of CSS3 , Stylus and Sass , code reformatting for Slim and HAML , support for ReactJS and JSX / ES6 , etc.
We can talk for a long time to come . about many other, small, but no less pleasant and useful innovations of RubyMine 7. But isn’t it better to just try the new version in business? You can learn more about RubyMine 7 and download the free 30-day trial version of the IDE on our website.. The update is free for all users who bought or updated their licenses on November 13, 2013 or later. We also remind you that all JetBrains IDEs are now free for students .
We will try to answer your questions in the comments, and we will be glad to any new requests in our bug tracker .
Program with pleasure!
-JetBrains Team