Hello everyone,
I’m glad to announce the next RubyMine Nire EAP build (118.614) is ready to try out. We have some new cool features I want to tell you about.
Rails Engines Support
Many of you might like and use Rails Engines, miniature Rails applications that can be embedded into your main application. We think they’re a great idea so we now support them in RubyMine.
First of all you can create your own new mountable engine just like you create a new Rails app:

Then you can use all the IDE power for developing and running/debugging your engine (don’t forget to fill in the “Dummy app” field in your run configuration with a path to test/dummy directory):

And finally you can add your engine to the main app:

Mongoid/MongoDB Support
We have good news for those who prefer non-SQL open source MongoDB to other DB-s. From today we support Mongoid, an Object-Document-Mapper for MongoDB written in Ruby.

Debugging Features
This build also brings new debugging features such as IRB/Rails Console Debug and Multi Process Debug. The first one allows for running IRB/Rails Console in a debug mode. The second one allows for attaching to sub-processes automatically while debugging.
For more details and screenshots please take a look on release notes. For download please visit RubyMine Nire EAP page.
Looking forward for your feedback!
—
Develop with pleasure!
JetBrains RubyMine Team

Is there any way to convert an existing project which is already a mountable engine? How should I create the dummy app, does RM do it for me?
BTW great addition to an already excellent IDE.
Your existing can be simply opened with RubyMine and it should pick it up. If it doesn’t work you can remove .idea folder and reopen your project. Dummy application is generated automatically by Rails generator in test/dummy. If you need to often create it in different locations, feel free to submit a feature request.
Please open your project using File | Open Directory. RubyMine provides the ability to set the load path for Dummy app in the run configuration.
Wow, nice to see engine support added to RM, and this soon too!
I am currently participating in a project where we are developing an app which is comprised of the main app and 5 engines.
fooapp (main app resides here)
vendor
fooapp
foo_engine
bar_engine
baz_engine
Each engine is loaded as a gem. I often work on different engines at the same time, so I need to see all the engines at the same time.
Can you give a hint as to how I should work with this project in RM?
Oh, I can’t use pre tags apparently, so I’ll try with some line art
fooapp (main app resides here)
-vendor
–fooapp
—foo_engine
—bar_engine
—baz_engine
Unfortunately you can’t edit your engines under the main app so far. So you need to open all your engines as separate projects for development. Could you please add a feature request to our tracker? Or you can vote for this one, if you think it solves your case.
Thank you for your answer.
I am a bit confused (not by your reply, but about engines under RM in general).
I am currently working on the project that I described, and most things are working alright so far. So what do you mean by “you can’t edit your engines under the main app”?
Could you perhaps go a bit more into details about what exactly “support for engines” means in RM?
You can edit your engine gem code under the main app, but you can’t run tests or add new gems dependencies for it. If you want to develop engine with the whole bench of RubyMine features you need to open it in a separate window. Support for engines in RM means you can create your own new engine or open an existing one and RM will be aware of its structure, so you can use code insight, testing, debugging and running opportunities.
Aha, so testing and debugging and running is not working properly? That is indeed the case for me, at least they don’t work on engine level, so things are starting to make sense. Thanks for clearing things up a bit for me.
I have existing engine with the dummy app in test/dummy. Even though there’s a test/dummy/script/rails, when I try to run the server in RubyMine it complains that that exact pathname does not exist.
This is a bug, I’ve fixed it and fix will be available in the next public build. You can use absolute path as a workaround