What’s Mining: Improved Type Hierarchy

Hello everyone,

Next RubyMine 4.0 EAP build is on its way to you. It is very close! Meanwhile let me tell you about one more nice feature that will come with it.

Now you can see the full type hierarchy for a selected class:

… or supertypes and subtypes apart:

That’s it. Hope it will make code analyze and navigation more convenient to you.


Develop with pleasure!
JetBrains RubyMine Team

Posted in Feature, Productivity, WhatsMining | Tagged , | 2 Comments

What’s Mining: New Ruby Inspections for Better Code

Hello everyone,

Writing a code that smells isn’t as terrible as it seems to be. But leaving an ugly code without changing it is much worse. Refactoring is one of the bases of development, and Ruby development is not an exception. RubyMine has a very powerful tool that can help a lot with making your code smell good. I’m talking about ‘Code Inspection’ mechanism. We are tuning it all the time and now it’s time for some Ruby code inspection improvements.

The list of ‘bad code’ metrics for Ruby code inspection is based on Ruby style guide and such tools as Roodi, ReekSaikuroFlogFlay e.t.c. Today I’ll show you some examples how different code checks are performed by RubyMine. Lets take a look at some new code inspections coming in RubyMine 4.

Empty rescue block
This check goes from Roodi and allows to find all rescue blocks without any content. You can decide whether to consider comments as a content and also whether to ignore empty catch blocks when the parameter is named ‘_’. The warning is shown directly in a code that can be rewritten immediately with a help of intention actions.

‘Then’ identifier in multi-line if/unless block
According to Syntax section of the Ruby style guide, you should never use ‘then’ for multi-line if/unless blocks. RubyMine reminds you about it.

Naming conventions
If you’re a newcomer to Ruby or develop with many different languages you might not remember all naming conventions by heart. And it can be really annoying to look after all the names in your code. RubyMine follows Naming section of the style guide by default for Ruby code, but you also can set your own pattern and length as a convention for names.

The list of inspection results is also shown at the ‘Code Inspection’ panel.

The full list of checks with short descriptions is placed in the IDE Settings | Inspections section where every check can switched on or off or configured.

Check out the full list of Ruby code inspection checks available in RubyMine.

Posted in Better Code, Feature, WhatsMining | Tagged , | 3 Comments

What’s Mining: Show You Inherited Methods

Hello everyone,

You know we focus a lot on the performance issues these days. But we don’t forget about other cool features. Let me show you the one, quite yummy…

In the next EAP build you will be able to surf and search not only methods of a class you worked at, but all inherited methods as well. Go to the Structure view and find the new “Show Inherited” icon:

Voila:

Don’t forget you can search:

That’s it. Will be back with more delicious features soon.

Develop with pleasure!
JetBrains RubyMine Team

Posted in Feature, Productivity, WhatsMining | Tagged | 1 Comment

New Faster RubyMine 4.0 EAP is Ready for Download

Hello everyone,

We welcome you to download the new RubyMine 4.0 EAP build!

There is no limit for better performance and our team is struggling for faster RubyMine all the time. But we are glad to announce the next build of RubyMine 4.0 EAP that is much faster than any previous one. And now we can not only talk about performance improvements but also show the numbers!

Take a look on benchmark results for ‘Inspect Code’ run on two example projects (Radiant and Diaspora). The results are the time, so the smaller the better:

As you can see RubyMine is now working significantly faster and subsequent runs are also better. But you can also become a little bit faster with the latest IDE additions, such as Go to Class by full class name and mnemonics for Go to Related Files. Find Usages function has also been improved.

For those who like to be on the cutting edge we are glad to say that compilation for CoffeeScript files is now available right from the IDE. Just run ‘Compile cofeescript file’ from the context menu and see the corresponding JavaScript code in the same window to compare:

More details and screenshots are available in the full changelog. We welcome you to try and tell us what do you think about it.


Develop with pleasure!
JetBrains RubyMine Team

Posted in Announcement, Cutting Edge, Productivity | Tagged , , | 15 Comments

Winter is coming! Get 50% OFF on RubyMine and other IDEs

Soon enough the whole world will be covered with snow. White walkers are close! Warm your soul with a nice discount — get 50% OFF on your personal license for the following products now:

But that’s not all! Winter will not seem so long because RubyMine 4.0 EAP is already open and if you buy your license today, 4.0 comes as a FREE update.

To see what’s coming in 4.0, take a look at our roadmap, and try RubyMine 4.0 EAP in action!

Hurry up to get the brightest development environment before Nov 27!

Develop with pleasure!
Your JetBrains Team

Posted in Announcement | 11 Comments

Fighting Code Smell in Ruby Code

Hello guys,

Recently we’ve attended RuPy2011 conference in Poznan, Poland, where Dennis and I were giving a workshop Fighting Code Smell.

During the workshop we were talking about existing tools for detecting ugly and potentially dangerous code. We discussed their differences, pros and cons, and everyone was able to try them on treir own project during the workshop. Also we spent some time explaining how these tools work, what techniques are used etc.

In the conclusion we talked about semantic analysis which RubyMine uses to give you smart code assistance using type inference, inspections like “Unused local variable” and much more.

Most of the information mentioned above is available in Fighting Ruby code smell presentation below:

Also we are wondering if you are interested in more details on how RubyMine treats Ruby and Rails code? In case of positive answers, most likely we’ll dedicate a couple of blog posts to this stuff.

P.S. We really enjoyed attending RuPy 2011. Kudos to the organizers!

Poznan:

Warsaw:

-Develop with Pleasure!
JetBrains RubyMine Team

 

Posted in Better Code, Events | 2 Comments

RubyMine 4.0 Early Access is Open

Hello everyone,

Today we are glad to announce that the RubyMine 4.0 EAP is open. There are loads of major and minor improvements compared to 3.2.x versions. Let us just mention some most important ones:

  • Performance. We’ve reworked a significant part of IDE code analysis routines with one main goal — improve editor performance.
  • CoffeeScript. Advanced support for CoffeeScript includes code inspections and code formatting for this modern and popular language.
  • Auto-completion and code navigation when working with gems that have native components.
  • Mac UI improvements (see screenshots in release notes).

More details are available in the full changelog and we’ll be blogging more about these and other changes in the following weeks.

You are welcome to download this RubyMine 4.0 EAP build, and tell us what do you think about it.

Develop with pleasure!
-JetBrains RubyMine Team

Posted in Announcement, Comfort, Cutting Edge, Productivity | Tagged , , , | 27 Comments

Plugin highlight: “Injector” brings single-key Ruby injections into ERB

If you use ERB for your Rails views, you should like this one.

It may not be a problem for you but I always stumble when typing <% %>, let alone <%# %>. Non-letter keys and you have to press Shift too. So, I was quite impressed when I saw this Injector plugin in our plugin repository recently.

It is pretty straightforward, a single character generates the whole closure and puts the caret inside.
‘%’ –> <% | %>
‘=’ –> <%= | %>
‘-’ –> <% | -%>
‘#’ –> <%# | %>

And even though it sounds very simple, the author has put a good thought into his work. Here’s what plugin description says:

When character is just replaced (no other key presses are made), you can cancel replacement by pressing Backspace. Characters are not replaced if cursor is already in Ruby-code block. To enable or disable Injector you can click on injector icon in the status bar or press default shortcut Ctrl+Comma(,)

Kudos to Basil G. a.k.a. toXXIc!

To install the plugin open IDE Settings | Plugins, find the Injector plugin and choose Install.

Develop with pleasure!

Posted in Feature, Productivity | Tagged , , | 6 Comments

RubyMine 3.2.4 — fighting for performance

We’ve just made another RubyMine update available — RubyMine 3.2.4.

The main reason of the update is improved IDE performance. The improvements are made in Ruby specific functionality and also in the underlying IntelliJ Platform: memory footprint reduced for indexing JavaScript files.
If you are curious about other changes, check the full changelist.

Another noteworthy change is the addition of several new and update of existing editor color schemes, mostly dark ones. We’ve enhanced the popular VibrantInk and Cobalt schemes, and added some new ones such as Monokai, Blackboard, etc. Check all available schemes under IDE Settings | Editor | Colors & Fonts.

As usual, the new version is available for download on the JetBrains Web site.

Meanwhile, we’re working hard on the next major version and Early Access for RubyMine 4.0 will be announced soon. Stay tuned!

Develop with pleasure!
-The RubyMine Team

Posted in Announcement, Comfort, Productivity | Tagged , | 21 Comments

2 RUPY’11 conference passes up for grabs

Hi there! Today we want to start a small competition here.

We’re sponsoring RuPy 2011 conference that will happen in Poznan, Poland on Oct 14-16th. We’ll also do a workshop there and really looking forward to the event. RuPy has already gained high interest within the Ruby and Python communities. Each new batch of tickets was sold within hours.

As a sponsor we have 2 free conference passes available and we want to give you a chance of winning them. Entering the competition is plain easy.
All you need to do is:

1. Post a link to this competition — on your blog/site, or via Twitter.
2. Leave a comment here on the blog, letting us know where you posted the link!
3. Do it before the end of Friday, August 19th.

On Monday, August 22nd we’ll randomly pick two winning comments.

So, good luck everyone and hope to see you in Poland!
-RubyMine and PyCharm Teams

Upd: Contest results.

Posted in Announcement, Events | 24 Comments