RubyMine offers tight integration with VCS, includes database and deployment tools, and has a vibrant plugin ecosystem.
Version Control Systems
- RubyMine provides a unified interface for many popular Version Control Systems, ensuring a consistent user experience with Subversion, Git and GitHub, Mercurial, CVS, Perforce, and TFS.
- All tedious tasks (such as adding, removing and deleting files) are performed automatically.
- In RubyMine you have the ability to track all the local changes without any VCS. No accidental changes or modification will pass unnoticed.
- At any time you can inspect the history of either a particular file or directory, and roll back to any of its previous versions. You can also set version labels.
Built-in visual merge tool
A built-in visual merge tool resolves all conflicts in a quick and intuitive manner. The changes made locally are highlighted as you type in the editor gutter, providing intuitive navigation and 2-click rollback for individual changes.
If you need to work with the repository files and have uncommitted changes, just shelve them—the IDE will keep the changes safe until you decide to commit or merge them.
Patches and arbitrary reverting
Create patches directly from the code to later apply and merge with repository files. You can also revert any arbitrary code change, committed by you or your colleagues, by applying a reverse patch.
Access Oracle, SQL Server, PostgreSQL, MySQL, SQLite and other databases right from the IDE. RubyMine provides a UI for introspecting all objects, adding and editing tables, adding columns, indexes, constraints, etc.
SQL code can be injected to other languages or edited with syntax highlighting, smart code completion, on-the-fly code analysis, code formatting and navigation.
A powerful data editor lets you add, remove columns and clone existing ones. Navigate through the data by foreign keys, or use text search.
Remote Development & Deployment Tools
SSH remote tools
The Built-in SSH Console let you connect to any remote machine and perform various actions via SSH. In addition, SSH Remote Tools can be configured to run any remote tool right from the IDE with a single keystroke.
Using a remote Ruby interpreter instead of a local one lets you run and debug your application on a production-like or testing environment, be it the real server or a virtualized one created with Vagrant or Docker.
Integration with Vagrant allows you to share a development virtual machine by sharing a simple script. Other developers can then launch an identical machine by running the ‘up’ Vagrant command.
RubyMine integrates Docker, a popular open platform for distributed applications. Specify a Ruby interpreter from a Docker container and use it in your project for running, debugging and profiling your applications.
Following the main concepts of Chef, a configuration management tool, RubyMine supports cookbooks, recipes and resources. It provides marking/detection options for a cookbook and code insight for a resource along with its attributes.
Take advantage of syntax highlighting and auto-formatting for puppet manifests; smart code assistance for variables, classes, resource types and parameters, facts and external functions and types; and the ability to set up several environments.
Issue tracker integration
Link your issue tracker account with your project and work on it in the context of tickets and tasks. RubyMine provides support for Jira, JetBrains YouTrack, PivotalTracker, Redmine, Mantis, GitHub and Gitlab, Bugzilla, and more.
Dozens of plugins are available in the IDE Plugin Repository for when you decide to enrich RubyMine with support for new frameworks, integrated tools, and additional productivity features.