RubyMine 2017.2 Help

Rails/Spring Support in RubyMine

Executing Rails development tasks sometimes involves overheads, because every time the entire Rails environment should be reloaded. You can avoid it using the Spring server, which loads the environment only once.

Prerequisites

  • You are working with macOS or Linux operating system.
  • Prior to launching Spring server, make sure spring gem, and the corresponding testing gems (rspec-rails, cucumber, cucumber-rails, etc.) are used in your application.
  • spring gem is added to the Gemfile.

    Since Rails version 4.1, spring is added to the Gemfile by default.

Changes to the UI

When spring is installed, Spring appears in the list of pre-loaded servers in the default run/debug configurations for RSpec, Test::Unit/Shoulda/Minitest, and Cucumber.

It is important to note that there is no dedicated run/debug configuration for the Spring server. Spring server is launched by default.

Special notes

  • RubyMine always uses Spring server, if it is available for Rails generators and Rake tasks.
  • When debugging, the Spring server is turned off.
  • Note that if you debug a test script, it will be executed without Spring server
  • Use additional commands for running tests. However, spring-commands-spinach is not used.
  • It's possible to turn the Spring pre-loader off by clicking Ctrl+Shift+A, typing Spring and choosing Spring pre-loader from the suggestion list:
    /help/img/idea/2017.2/spring_preloader.png
  • RubyMine runs spring related commands with the custom SPRING_TMP_PATH={temp_dir}/RMSpring property. To deal with RubyMine spring, you should prepend spring server commands with SPRING_TMP_PATH={temp_dir}/RMSpring. Exact spring working directory can be found in a log file using the pattern "Moving Spring to ".
    RubyMine tries to stop spring on project closing and on modules gems rebuilding.
Last modified: 30 August 2017

See Also