InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

RubyMine 1.0 Steps Into the Ruby IDE Ring

Posted by Robert Bazinet on Apr 30, 2009

Sections
Development
Topics
IDE ,
Ruby on Rails ,
Ruby
Tags
Ruby1.9 ,
IDEs ,
Ruby on Rails

JetBrains, the developers of IntelliJ IDEA and ReSharper among others, released its first foray into the Ruby space with RubyMine 1.0 – an IDE for Ruby and Ruby on Rails development.

RubyMine was released as a Public Preview in November and received great feedback from the Ruby community.  Dmitry Jemerov, the lead developer of RubyMine had to say this about the community support:

Despite the belief that most Ruby/Rails developers are happy writing code in simple text editors, we had RubyMine downloaded around 25,000 times since the Public Preview announcement. Early RubyMine adopters provided a great deal of feedback and worthy improvement suggestions.  We are certain that, as with all of our highly-intelligent development tools, Ruby developers can be extremely productive by using RubyMine. In fact, version 1.0 is just the beginning — we have tons of ideas and plans for new releases.

RubyMine 1.0 has several key groupings of functionality developers should look toward to understand what this IDE can do for them.

Ruby IDE

Ruby Editor

Ruby code editor provides automatic syntax and error highlighting of Ruby code as you type. Carefully selected colors for Ruby statements, keywords, comments and other language elements as well as several different color schemes bundled with RubyMine.  RubyMine performs automatic Ruby code styling, with brace matching and folding, custom formatting, indentation and TODO marks.

Code Completion

  • Smart Ruby statements and keywords completion
  • Automatic completion of built-in methods
  • Completion and automatic resolution in require and load calls
  • Correct filtering of static and instance members in autocompletion
  • Local variable type inference
  • Type inference for Method return values
  • Type inference for block variables within block calls

Refactorings

  • Rename refactoring
  • Extract Method
  • Introduce Variable
  • Override Method

Code Analysis

RubyMine performs code analysis as code is typed, highlighting errors.

Ruby on Rails Development

RubyMine makes the development of Ruby on Rails applications a first-class citizen, not as an add-on to an existing editor.  This is just a start to the Rails-specific capabilities of the IDE.

  • Ruby on Rails Projects
  • Advanced Rails Project Navigation
  • Model Dependency Diagram
  • Autocompletion for Rails controllers, helpers and views
  • Rails-aware Refactorings
  • Rails Code Completion
  • RHTML Editing
  • YAML Support

Intelligent Coding Assistance

The ability of an IDE to add the little things that make a developer’s life so much easier is added with Intelligent Coding Assistance.    Developers familiar with JetBrains other products will be familiar with this type of assistance.

  • Braces, brackets & quotes auto-insertion and surrounding
  • Matched brace/bracket highlighting
  • Express code commenting
  • Extend/shrink selection
  • Live Templates
  • Parameter Info popup
  • Quick documentation lookup

Unit Testing Support

RubyMine supports both unit and behavior-driven testing for Ruby and Rails code.  This includes tests for RSpec, Test::Unit, Test/Spec frameworks, Live Templates and smart code completion for RSpec.

Features also include:

  • Built-in test runner, fully integrated with IDE, and capable of running tests via Rake tasks
  • Action for quick launching of tests for a specified method, class, BDD example, etc.
  • Navigation between code and tests in Rails applications
  • On-the-fly statistics on currently running tests
  • Dedicated view for tests, with details panel for viewing a selected test output
  • Quick navigation to a line of code where tests have failed
  • File templates for creating Test::Unit and Test/Spec tests
  • Intention actions for quick creating of tests either from the console or editor

Graphical Debugger for Ruby on Rails Code

A graphical debugger is an integrated part of the new IDE that includes smart breakpoints, dedicated views for watches, stack and expression evaluation.

Version Control Systems Integration

The IDE allows for complete integration to common source control systems including:

  • Subversion
  • Git
  • CVS
  • Perforce

Supported features include synchronization, checkout, merging and updates as well as:

  • Changelists support for all integrated version control
  • Next, Previous, Rollback, Show Difference actions in the gutter bar
  • View revision history for project/folder/file
  • Annotate command for reviewing the files
  • Recent changes display with a single shortcut
  • Automatic checkout of all affected files when refactoring
  • Dedicated tool window for History, Status, Update Info
  • Ability to commit the entire project, with conflict notifications
  • Notification on files changed by your team mates

RubyMine also features detailed Changelist management listing all files that have changed, deleted or not yet under version control.  Users can then:

  • Create, remove or commit a changelist
  • Rollback the modifications
  • Add files and folders to version control
  • Move the selected files between the changelists
  • See the diffs between selected files
  • Jump to the underlying source code

 

The plans for future releases is to have RubyMine 1.1 with Rails 2.3 support in May and v1.5 in the fall with support for Ruby 1.9, HAML parsing, a UI for installing Rails Plugins as well as Cucumber support.  Additional information can be found on the JetBrains web site or download RubyMine now.

Made with Java? by Joshua Partogi Posted
Re: Made with Java? by Tim Ferrell Posted
Nice IDE! by Zenyk Matchyshyn Posted
  1. Back to top

    Made with Java?

    by Joshua Partogi

    A Ruby IDE made with Java? :-) If you are already own IntelliJ, it's more worthed to download IDEA Ruby plugin rather than getting this RubyMine.

  2. Back to top

    Re: Made with Java?

    by Tim Ferrell

    True, the ruby plugin for IDEA is based on the same codebase... but the nice thing is that Rubymine is priced much more affordably for those that do not already own IDEA :-)

    Over the past 4 years I have used about every IDE for Ruby out there and all left me frustrated in one way or another... Rubymine, on the other hand, is well thought out, well designed and *gasp* it actually saves me time developing and debugging. I have been using it for some time now via the EAP program and the devs have proven to be very responsive to feedback and bug reports.

    Kudos to Jetbrains for all the great work!

  3. Back to top

    Nice IDE!

    by Zenyk Matchyshyn

    RubyMine is specific to Ruby only, thus it is more efficient for Ruby only development.



    btw, recently RubyMine 1.1 was released

Educational Content

Jesper Boeg on Priming Kanban

In this interview, Jesper Boeg, author of the new InfoQ book – Priming Kanban, discusses the keys to using Kanban effectively, and how to get started if you are currently using other approaches.

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.