Chef Support
On this page:
Prerequisites
-
Make sure the Chef Integration repository plugin is installed and enabled.
The plugin is not bundled with RubyMine, but it can be installed from the JetBrains plugin repository
as described in Installing, Updating and Uninstalling Repository Plugins and Enabling and Disabling Plugins.
Chef Support plugin resides here.
- The gem chef is installed in the SDK.
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 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:
- Command Mark Directory As on the context menu of the Project tool window:
- The Project Structure page of the Settings dialog:
You can always cancel marking, using the command Unmark directory ....
Coding assistance
- It is possible to invoke code completion for any Chef resource:
- RubyMine enables navigation to a resource declaration in the Chef library:
- Own attributes of a resource, and the inherited ones are also available inside the resource code block:
- 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
: