RubyMine 2018.2 Help

Chef Support

Prerequisites

  • Make sure the Chef Integration repository plugin is installed and enabled as described in Managing Plugins.

    Chef Support plugin resides here.

  • The gem chef is installed on the Ruby SDK configured for your project.

Basics

Following the main concepts of Chef, the Chef Integration plugin introduces cookbooks, recipes, resources and attributes. The plugin provides marking and detection for a cookbook and code insight for the resources and their attributes.

If a certain directory contains a sub-directory named recipes, with the Ruby file inside, such directory is recognized as a cookbook. RubyMine suggests to mark such a directory with chef cookbook icon icon.

Since a directory is marked as a cookbook, code insight is available for any Ruby file inside the cookbook folder.

Marking directories as cookbooks

RubyMine provides the following ways of marking a directory as a cookbook:

  • RubyMine recognizes a cookbook and suggests to configure it. To see the suggestion to configure, start typing into a recipie file:
    chef configure cookbooks
  • Command Mark Directory As on the context menu of the Project Tool Window:
    chef mark directory as
  • The Project Structure page of the Settings/Preferences dialog:
    chef mark directory as project structure

You can always cancel marking, using the command Unmark directory ....

Coding assistance

  • It is possible to invoke code completion for any Chef resource:
    chef code completion
  • RubyMine enables navigation to a resource declaration in the Chef library:
    chef resources
  • Own attributes of a resource, and the inherited ones are also available inside the resource code block:
    chef attributes
  • Whenever possible, RubyMine suggests attribute arguments, such as allowed actions for the action attribute; actions for the notifies and subscribes; all boolean arguments, and many more.

Running the Bundler

On the UNIX-like computers, RubyMine suggests to run the Bundler with the sudo privileges, if SDK so requires. For example, Chef DK by default, requires installing gems under sudo:

rm chef sudo
Last modified: 31 August 2018

See Also