RubyMine is an integrated development environment that helps you be more productive in every aspect of Ruby/Rails projects development – from writing and debugging code to testing and deploying a completed application. This section will give you a brief overview of some of the most essential features available in RubyMine.
Write error-free code faster with smart, type-aware code completion, intelligent code inspections, live templates, and intention actions.
Code faster with autocompletion. It works as you type, suggesting a list of matching variables, methods, and keywords.
Refactor your code with the fast and safe rename and delete refactoring. You can perform all kinds of refactorings: extract variables, parameters, methods or superclasses, introduce constants, and more.
All the refactorings are Ruby on Rails aware, and renaming a controller will also rename the related helper, views, and tests.
Configure and use a consistent code style for any language. Set the formatting for indents, spaces, aligning rules, and so forth, and share it with your teammates.
RubyMine automatically applies the configured code style as you write, or it can reformat whole files all at once.
View documentation in a popup, create missing YARD tags using intention actions, and check their validity.
RubyMine utilizes YARD annotations for better code insight, allowing it to suggest relevant results in code completion and parameter hints for methods.
Live templates (aka Code snippets) allow you to type less when you use the most common pattern structures in your code. Customize the existing templates and create your own.
You’ll always see when there are any errors and code smells, such as unreachable code, incorrect call argument count, unused variables, and so on.
Resolve these problems automatically by applying quick-fixes suggested by the IDE.
Quickly identify how everything in a project works, with powerful navigation and search capabilities.
With just one click you can navigate to declarations, super methods, tests, usages, implementations, and more. You can not only jump to project entities but also to definitions within external gems.
Quickly see all the places that use a class, method, variable, or symbol.
RubyMine can help you find what you’re looking for, be it an item in the source code, a user action, or a UI element. Press Shift twice and start typing the name of what you need.
Easily navigate your code structure: switch between class methods (including inherited ones), or jump between HTML tags.
RubyMine enhances your productivity with Rails and natively supports all major web development practices.
RubyMine recognizes Rails concepts and enhances code insight features. For example:
RubyMine offers support for editing ERB views, with braces, folding, syntax highlighting, code completion, and more. If you use HAML or Slim views, you'll find syntax highlighting for the injected Ruby code as well as coding assistance for HTML code inside.
You can quickly navigate between Rails controllers, actions, views, models, database schemas, and tests using the Navigate | Related Symbol command.
Add new Rails entities, such as models, controllers, and migrations, to your project with a UI that provides quick and context-sensitive access to Rails generators.
Create or edit local properties using intention actions right in the editor, run an inspection to find missing keys, preview localized values, and so on.
Take a bird's-eye view of your project models with their attributes to analyze the project structure and navigate to the code you need.
RubyMine has tight integration with all the popular Ruby tools, including Rubocop, Bundler, Rake, and many more.
Handle gem dependencies for your application right inside the IDE using the Bundler integration. You can run Bundler commands right from the Run Anything popup.
Quickly switch between the different Ruby versions installed using version managers, such as RVM, rbenv, asdf, and chruby. You can also work with RVM and rbenv gemsets in the IDE.
Run any Rake task in your project using the Run Anything popup (double Ctrl). You can also run tasks right from the editor using gutter icons.
Fix Rubocop offenses right inside the IDE, or check the entire project and display all RuboCop warnings in a single report.
Interact with your application using the IRB and Rails consoles without ever leaving the IDE.
RubyMine’s integration with the rbspy sampling profiler allows you to profile Ruby and Rails applications easily.
Generate, run, and manage your tests with ease. RubyMine supports all popular frameworks.
Generate tests from predefined customizable templates. You can even create a test when navigating to it from a class, replicating the directory structure based on the path to the test subject.
In RubyMine, you can quickly navigate between a test and the test subject. If you are using FactoryBot, you can even navigate from models to factories and vice-versa.
Measure how much of your code is covered with tests using integration with SimpleCov. You can analyze the percentage of covered files and lines in a separate tool window and editor, generate HTML reports, and so on.
RubyMine has a clever debugger with a graphical UI for Ruby, JS, and CoffeeScript.
RubyMine provides a visual debugger for Ruby. Run your code step by step with all the information available there at your fingertips.
Place a breakpoint on a line of code and define the hit conditions – a set of Boolean expressions that are evaluated to determine whether to stop executing the code.
Descend into any method call or block on the current line. If there are multiple method calls or blocks, you can choose the desired target.
Examine the state of a suspended program using an interactive IRB-like console. In this console, you can check variable values, examine complex objects, call methods, and so on.
Debug your program with a remote interpreter, such as Docker, Vagrant, SSH, or WSL. You can even attach to remote processes and debug them.
Use popular version control systems without leaving your IDE: browse the change history, manage branches, merge conflicts, and much more. Even without VCS, you can use the local history to find and restore any changes made between commits.
Work with Git and GitHub, Mercurial, Subversion, Perforce, and others from the IDE.
The Commit tool window allows you to perform code analysis, check for TODOs left in your code, and reformat the code.
A built-in visual merge tool helps resolve conflicts quickly and intuitively.
Keep track of the changes made in the source code: quickly switch between branches, filter by a user, choose the desired date, and so on.
Restore deleted files, bring back separate changes, or roll back to any state of a file, even if a version control system has not yet been enabled.
Manage incoming pull requests in RubyMine. You can complete the entire pull request workflow, from viewing pull requests to submitting comments and accepting changes, without leaving the IDE.
Set up everything the way you like it with customizable shortcuts, interface themes, and plugins.
RubyMine comes with several editor color schemes bundled and it’s even possible to create your own custom schemes or modify existing ones.
For higher productivity, use the keyboard for all your tasks. You can choose from predefined keyboard layouts or create your own.
RubyMine provides viewing modes for specific usage patterns. For example, you can turn off all distractions by hiding all UI elements except the code.
Extend RubyMine with plugins and get support for additional VCS, integration with various tools and frameworks, and editor enhancements. Use the Marketplace tab to browse and install plugins from the Plugin Marketplace.
Streamline your workflow right from the start with a database plugin, a terminal emulator, Capistrano support, and much more.
Use an embedded terminal emulator for working with a command-line shell from inside the IDE. Use it to work with the Ruby environment, run Git commands, and perform other command-line tasks without switching to a dedicated terminal application.
Explore and edit databases with the bundled Database Tools and SQL plugin. The plugin supports database management systems, including MySQL, PostgreSQL, SQLite, and others.
Test the API inside the IDE with the integrated HTTP client. You can compose and run HTTP requests right in the editor.
Run, debug, and test your code in a remote environment using Docker, WSL, Vagrant, or SSH. All you need to do is configure a remote interpreter.