You can run into a situation when you are short of time to bring your source code to a certain required condition or you need to work on an urgent high priority task. In this case you might want to put some changes aside and continue working on a stable version.
With RubyMine, you can use shelves for storing postponed changes temporarily. In due time, the desired changes can be taken back from the shelf (unshelved).
RubyMine enables shelving both separate files and entire changelists. Accordingly, you can unshelve entire shelves or specific files.