Early Access Program

RubyMine 2021.3 Release Candidate

RubyMine 2021.3 Release Candidate is now available!

Unlike previous EAP builds, the RC requires you to have a valid RubyMine license. Otherwise, it will install and run as a 30-day free trial.

You can install the RC version alongside a stable version of RubyMine.


In this post, you will learn about the some of the new features in the upcoming 2021.3 release:

Database tools

Database in the Version Control System

A DDL data source is a virtual data source whose schema is based on a bunch of SQL scripts. Storing these files in the Version Control System is a way to keep your database under the VCS.

Starting with this release, you can:

  • Generate a DDL data source from a real one
  • Use the DDL data source to map the real one
  • Compare and synchronize them in both directions

Database in the Version Control System

Aggregates

We’ve added the ability to display an Aggregate view for a range of cells. This will help you manage your data and that will spare you from having to write additional queries.

Just select the cell range you want to see the view for, then right-click and select Show Aggregate View. One aggregate value is displayed in the status bar, and you can choose which value you’d like it to be.

Aggregates

New database diff window

You can now use the new database diff window to compare two schemas or objects: just select them, and press ⌘D / Ctrl+D.

New database diff window

First row is header auto-detection

Starting from this version, when you open or import a CSV file, RubyMine automatically detects that the first row is the header and contains the names of the columns.

First row is header auto-detection

[Oracle] Introspection levels

Introspection is the process of getting the metadata of the database, such as object names and source code. RubyMine needs it to provide rapid coding assistance, navigation, and search.

For most daily work, and even for effective coding assistance, there is no need to load object sources. In many cases, just having database object names should be sufficient to provide proper code completion and navigation. So, we introduced three levels of introspection for Oracle databases:

  • Level 1: Names of all supported objects and their signatures, excluding names of index columns and private package variables
  • Level 2: Everything except source code
  • Level 3: Everything

Introspection is fastest on level 1 and slowest on level 3.

Use the context menu to switch the introspection level as appropriate:

[Oracle] Introspection levels

The introspection level can be set either for a schema or for the whole database. Schemas inherit their introspection level from the database, but it also can be set independently.

HTTP client enhancements

In this release, we have improved the built-in HTTP client. We’ve added support for gRPC requests, output redirection to a custom file or directory, support for text and JSON streams, support for HTTP request identifiers, and support for binary responses.

Binary responses in the HTTP client

The HTTP client shows an image preview in the response console if a response is an image.

If it isn’t clear whether it is a text response, the HTTP client will not show the preview.

Binary responses

gRPC requests in the HTTP client

Starting with v2021.3, RubyMine’s HTTP client supports gRPC requests (via the gRPC plugin).

To make the HTTP client treat your requests as gRPC, just start your requests with the GRPC keyword.

The HTTP client now provides completion for gRPC: fields of accepted messages in the request body, all known gRPC services, unary and server-streaming methods of a particular server.

Currently, the HTTP client can execute unary and server-streaming RPC types. Like in ordinary HTTP requests, the request body and responses are plain JSON files.

Support for text streams and JSON streams in the HTTP Client

It is now easier to test streaming applications in the IDE. RubyMine 2021.3 supports the text/event-stream, application/stream+json, and application/x-ndjson content types.

This means the HTTP client will no longer wait for a stream to end and will instead display the output on the fly.

The HTTP client will also listen for the end of a stream and will show a message when the process is finished.

Output redirection to custom file or directory

The HTTP client can now redirect output to a custom file or directory. It supports two operators for force and soft redirects:

  • The >> operator always creates a new file, adding an -n suffix to a file name if the requested file name already exists.
  • The >>! operator rewrites the file if it already exists.

Support for HTTP request identifiers

RubyMine 2021.3 now understands identifiers (or names) for requests.

The IDE understands identifiers both that were declared as a comment with @name and that were declared as text in the first separator (###).

You can invoke a request by its identifier from the Services tool window or from the Run Configuration, Run Anything, or Search Everywhere dialogs.


To learn more about the newest features as they come out, please follow RubyMine on Twitter. We post product news and tips several times a week.

Please report any problems you encounter to our issue tracker, so we can try to fix them before the final release.

Happy Developing!
The RubyMine team

image description