RubyMine 2018.3ヘルプ

入門

RubyMineは、Ruby / Railsプロジェクトの開発(コードの作成とデバッグから完成したアプリケーションのテストと展開まで)のあらゆる側面において、生産性を向上させる統合開発環境 (IDE)です。RubyMineは、macOS、Windows、およびLinuxを含むさまざまなプラットフォームで使用できます。

このチュートリアルでは、RailsチュートリアルのRuby(英語)用に作成されたサンプルアプリケーションのフォーク(英語)を使用して、RubyMineの主な機能を紹介します。このチュートリアルを始める前に、次のことを行ってください。

  • Git(英語)をダウンロードしてインストールします。

  • 使用しているプラットフォーム用のRuby分布(英語)をダウンロードしてインストールします。

  • RubyMineをインストールしてセットアップします。

macOSにインストールされたRubyMineを使用してすべての手順を実行します。

プロジェクトを開きます

まず、サンプルアプリケーションを含むリポジトリをクローンする必要があります。

  1. RubyMineを実行し、ようこそ画面バージョン管理からチェック・アウトをクリックし、Gitを選択します。

    Welcome Screen / Git
  2. リポジトリーのクローンダイアログで、次のアドレスをURLフィールドに挿入して、クローンボタン https://bitbucket.org/rubyminedoc/sample_rails_app.gitをクリックします。

    Clone Repository

    RubyMineはクローン作成プロセスを示す進行状況バーを表示します。

    Cloning source repository
  3. リポジトリのクローンを作成したら、プロジェクトを含むディレクトリーを開くように求められます。はいをクリックします。

    Checkout From Version Control
  4. RubyMineはディレクトリーを開き、索引作成プロセスを開始します。ステータス・バーの進捗状況を見ることができます。

    Indexing

    RubyMineは、ソースを分析し、使用可能なファイル、クラスおよび関数定義などに関する情報を収集するためにプロジェクトを索引付けします。これは、コードインサイト機能コード補完およびナビゲーションに必要です。

Rubyインタープリターを選択して依存関係をインストールする

プロジェクトを開いたら、必要なRubyインタープリターを選択し、プロジェクトのGemfileで指定された依存関係をインストールする必要があります。

  1. Ctrl+Alt+S を押して設定/環境設定ダイアログを開き、言語 & フレームワーク | Ruby SDK および Gemページに行き、必要なインタープリターを選択します。

    Select Ruby interpreter

    OKをクリックします。

  2. さて、Gemfileで指定されたgemsをインストールしましょう。RubyMineでは、Bundler(英語)を使用してgemsを管理できます。Bundlerをインストールするには、 Ctrl を2回押し、次のコマンドを入力します: gem install bundler

    Run Anything / gem install bundler

    Enter を押し、Bundler gemがインストールされるまで待ちます。

  3. RubyMine内でBundlerコマンドを使用できるようになりました。gemsをインストールするには、 Ctrl をもう一度2回押し、バンドルインストールを入力してください。次に、リストから bundle install コマンドを選択し、 Enterを押します。

    Run Anything / bundle install
  4. バンドルインストールダイアログで、「 インストール 」をクリックします。

    Bundle Install dialog
  5. RubyMineがすべてgemsを取り付けるまで待ちます。

    Run Tool window / installing gems

    これで、エディターでいくつかの機能を試すことができます。

RubyMineはあらゆる規模のプロジェクトを探索するための豊富なナビゲーション機能を提供します。ファイル間の移動、宣言への移動、任意の型のエンティティの検索などが可能です。

プロジェクト・ビュー

IDEの左側にあるプロジェクトビューにプロジェクトの構造が表示されます。これを使用して、プロジェクト内の任意のファイルを開いたり、新しいファイルを作成したりすることができます。

Project view

宣言に移動

宣言に移動を使用すると、任意のシンボル使用箇所からシンボルの宣言にナビゲートできます。この機能を実際に確認するには、プロジェクトビューを使用して /app/views/users/new.html.erb ファイルを開きます。キャレットを:Eメール記号の横に置き、 Ctrl+Bを押します。

schema.rb ファイルの対応するフィールドにジャンプします。

プロジェクトエンティティだけでなく、外部ライブラリ内の定義(ここではgems)にジャンプすることもできます。たとえば、 schema.rb ファイルを上にスクロールします。 Ctrl (macOSの場合は )を押したまま、定義するメソッドの上にマウスポインタを置きます。メソッドがハイパーリンクに変わったら、キーを離さずにクリックします。

RubyMineは、ActiveRecord Railsモジュール内のメソッド定義を開きます。

使用箇所の検索

使用箇所の検索機能を説明するために別のファイルを開きましょう。 Ctrl+Shift+Nを押し、users_controllerと入力し始め、 users_controller.rb ファイルを選択し、 Enterをクリックします。

Go to file

編集の操作までスクロールし、その横にキャレットを置き、 Alt+F7を押します。検索ウィンドウでは、このメソッドが使用されている場所を探索できます。

Find usages

コントローラーなど、特定のRailsエンティティを操作するときは、関連するテスト、ビュー、モデル、およびヘルパーに移動できます。キャレットを編集メソッドの横に置き、 Ctrl+Alt+Homeを押し、表示を選択して Enterを押します。RubyMineは対応するビューを含む edit.html.erb ファイルを開きます。

ビュー内で同じショートカットを使用して、エディターガターの from view to action アイコンを使用すると、対応するアクションにすばやく移動できます。

どこでも検索

次のRubyMine機能を使用すると、ファイル、クラス、シンボル、またはオプションを検索し、必要なエンティティにジャンプすることができます。

UsersController内で破壊する動作を見つけようとしましょう。 Shift を2回押し、破壊するを入力し始めます。ドロップダウンには、シンボルグループ内のすべてのコントローラーの破壊するがリストされます。UsersControllerから破壊するアクションを選択し、 Enterを押します。

Go to symbol

users_controller.rb ファイルが開き、破壊するアクションの定義にキャレットが配置されます。

destroy action in editor

コードの編集

RubyMineはエディターで複数のコード編集機能を使用できるため、開発プロセスのスピードアップを図ることができます。これらには、コード補完、リファクタリング、コードインスペクションなどが含まれます。

コード補完

RubyMineは、クラス、メソッド、キーワードなどの名前を完成させるのに役立ちます。コード補完を呼び出すと、RubyMineはコンテキストを分析し、現在のキャレット位置に適用可能な選択肢を提案します。

たとえば、 users_controller.rb ファイルを開き、UsersControllerクラスで宣言されたインデックスメソッドに移動します: メソッドの中に次のコードを入力してください...

@users = User

...と入力し、ドットを入力します。ユーザークラスはApplicationRecordモジュールから継承されるため、エディターには継承されたすべてのメンバーが表示されます。

その後、どこで入力してリストをフィルタリングし、対応するメンバーをクエリモジュールから探し、 Enterを押します。

インテンション

インテンションは、さまざまなコード変更をすばやく適用できます:より良いコードスタイルのためのステートメントの変換、ロケール辞書への文字列の追加、言語インジェクションの使用など。

インテンションの動作を確認するには、 user.rb ファイルを開き、User.digestメソッドまでスクロールします。このメソッドは、複数行の3項演算子(? :)を使用します。Rubyスタイルガイド(英語)によれば、そのような演算子をif / then / else / endブロックに置き換えることが好ましい。これを行うには、キャレットをこの3項式に(たとえば、ActiveModelの横に)配置して Alt+Enterを押します。 Enter を押して、3項演算子をif / then / else / endブロックに変換します。

インスペクションを使用して、コードをチェックし、発生する可能性のある問題を検出できることに注意してください。

リファクタリングコード

リファクタリングは、ソースコードを変更したり維持したりするのを容易にするために、ソースコードを変更するプロセスですが、動作を変更することはありません。RubyMineで利用できるリファクタリング機能をいくつか見てみましょう。

名前変更リファクタリングを使用すると、クラス、メソッド、ファイル、変数、およびパラメータの名前を、それに合わせて修正されたコード内でそれらのすべての参照を使用して名前変更できます。 users.rb ファイルを開き、before_save Active Recordコールバックで発生したdowncase_emailメソッドまでスクロールします。このメソッドの隣にキャレットを置き、 Ctrl+Shift+I を押してその定義を確認します。

Esc をクリックし、 Ctrl+Shift+Alt+Tを押します。呼び出されたポップアップで名前変更...を選択すると、さまざまなリファクタリングが示唆されます。

Refactor this popup

名前変更ダイアログで、新しいメソッド名(ここではlowercase_email)を指定し、リファクタリングをクリックします。

Rename dialog

リファクタリングプレビューウィンドウには、名前を変更したメソッドへの参照がすべて表示されます。

Do refactor

リファクタリング実行をクリックして、すべての場所でメソッドの名前を変更します。

変数の導入

変数抽出リファクタリングは、選択された式の結果を変数に入れます。新しい変数を宣言し、その式を初期化子として使用します。元の式は新しい変数に置き換えられます。

micropost.rb ファイルを開き、picture_sizeメソッドに進みます。この方法では、 picture.size 式は2回見つかり、変数に置き換えることができます。

picture.size 式にキャレットを置き、 Ctrl+Alt+Vを押します。呼び出されたポップアップでこの式を選択し、 Enterを押します。次に、2回すべてを置換を選択し、 Enter をもう一度押します。最後に、変数名を指定し、 Enter を押して抽出を終了します。

コードの再フォーマット

RubyMineでは、コードスタイルの要件を満たすようにソースコードを再フォーマットすることができます。

micropost.rb ファイルのコードを再フォーマットしましょう。このファイルを開いて Ctrl+Alt+Lを押してください。

RubyMineはファイル全体を再フォーマットし、いくつかの変更された行を表示します。

コードを分析する

この部分では、静的コード分析を実行し、問題を検出します。

RubyMineは複数のインスペクションタイプをサポートし、さらにIDE内でRuboCop(英語)の犯行を表示することができます。RuboCop インスペクションはデフォルトでRubyMineで有効になっており、プロジェクトのSDKにRuboCop gem(英語)をインストールする必要があります。このgemがインストールされていない場合、RubyMineはこれを行うことを提案します。

Install Rubocop

アプリケーションによって使用されるgemsのリストを含むGemfileを開きましょう。bcrypt gemの警告の上にマウスポインタを置きます。

Rubocop warning

RubyMineはアルファベット順にgemsを注文する必要性を通知するRubocopメッセージを表示します(OrderedGems(英語)を参照)。

bcrypt gemの横にキャレットを置き、 Alt+Enterを押します。エディターは、間違ったgemsの注文に関連するすべての問題を修正することを提案します。これを行うには Enter を押します。

プロジェクト全体を確認し、すべての警告を1つのレポートに表示することもできます。これを行うには、メインメニューのコード | コードのインスペクションを選択します。呼び出されたダイアログで、目的のインスペクションスコープを指定することができます。

Inspection scope

プロジェクト全体オプションを終了し、OKをクリックします。インスペクションの結果ウィンドウには、プロジェクト全体の警告が表示されます。

Inspection results

このレポートをナビゲートして、特定の警告を修正または抑制することができます。

テストの実行

RubyMineを使用すると、Test::Unit、RSpec、Cucumberなどのさまざまなテストフレームワークを使用できます。

すべてのテストを実行

プロジェクトには、テストフォルダーにTest::Unitテストが含まれています。すべてのテストを実行するには、 Ctrl を2回押し、テストを入力します。呼び出されたポップアップで、自動的に作成されたテスト: sample_rails_app実行構成を選択し、 Enterを押します。

Run all tests

RubyMineが実行され、テスト結果が実行ツールウィンドウに表示されます。

特定のテストを実行する

次に、特定のテストを実行する方法を見てみましょう。 users_controller_test.rb ファイルを開き、ログインしていないときにインデックスをリダイレクトする必要がありますテストまでスクロールして、このテストの隣にある左ガターの実行ボタンをクリックします。

Run a specific test

呼び出されたメニューで、'test_should_redirect ...'を実行します。を選択します。RubyMineはこのテストの結果を表示します。

Test result

失敗したテストの再実行

それでは、 users_controller_test.rb に戻って2つのテストを打ち切ってみましょう。ログインしていないときにインデックスをリダイレクトする必要があります新しいものを得るべきのテストでは、 get users_pathget_sighup_path の行にコメントを付けます。これを行うには、これらの行を選択して Ctrl+Slash ショートカットを使用します。

Broken tests

Ctrl を2回押し、再度すべてのテストを実行します。これらのテストが失敗したことがわかりました。

Failed tests

get users_pathget_sighup_path の行(Ctrl+Slash)のコメントを外して、現在開いている users_controller_test.rb ファイルでこれらのテストを修正しましょう。 Rerun Failed Tests ボタンを使用して、これらの失敗したテストのみを再実行できます。

これでアプリケーションを実行する準備が整いました。

アプリケーションの実行

Railsアプリケーションを実行する前に、データベースを移行する必要があります。RubyMineでこれを行うには、 Ctrl を2回押し、db:migrateと入力します。ドロップダウンリストで rake db:migrate を選択し、 Enterを押します。

Run Anything / rake db:migrate

呼び出された'db:migrate'を実行するダイアログでデフォルト設定のままにして、OKをクリックします。

Execute db:migrate

これにより、 db フォルダーに development.sqlite3 データベースが作成されます。

これでアプリケーションを実行できます。 Ctrl を2回押し、開発を入力し始めます。リストから開発: sample_rails_app設定を選択し、 Enterを押します。

Run Anything / run configuration

RubyMineは、実行するアプリケーションを準備するプロセスを示します。

Run tool window / run Rails application

Webサーバーで使用されている 0.0.0.0:3000 アドレスをコピーし、ブラウザのアドレスバーに挿入し、 Enter を押して、動作中のアプリケーションを表示します。

Rails application in a browser

アプリケーションのデバッグ

RubyMineの主な機能の1つはデバッグサポートです。デバッガは、実行中のアプリケーションの状態を調べるさまざまな方法を提供します。コードをステップ実行して変数の値をチェックしたり、変数のウォッチを設定して値が変化するかどうかを確認したりできます。

ブレークポイントを設定してデバッグを開始する

まず、 users_controller.rb ファイルを開きます。新しいユーザーが作成された行の隣の作成するメソッド内にブレークポイントを設定します。

Set a breakpoint

デバッグを開始するには、 Ctrl を2回押し、sample_rails_appと入力してください。リストから開発: sample_rails_app設定を選択し、 Shift キーを押しながら(ダイアログタイトルはデバッグに変更されます)、 Enterを押します。

Start debugging

デバッグに必要なdebase(英語)ruby-debug-ide(英語) gemsがまだインストールされていない場合、RubyMineはそれらをインストールすることを提案します。

Install gems for debugging

gemsをインストールすると、デバッグツールウィンドウにアプリケーションの出力が表示されます。

Debug console output

ローカルマシン上のブラウザを開き、アプリケーションアドレス(0.0.0.0:3000)を指定します。

Rails application in a browser

今すぐサインアップ!ボタンをクリックします。サイン・アップページで、資格情報を入力し、アカウントを作るをクリックします。

User credentials

プログラムはブレークポイントに達すると停止します。

変数を調べる

これで、アプリケーションの状態と変数の値を調べることができます。

Stop on a breakpoint

フレームペインには、アプリケーションスレッドと対応するコールスタックが表示されます。この場合、作成するメソッドはスレッド25で呼び出されます。変数ペインでは、現在のコンテキストで使用可能な変数を調べることができます。

user_params変数をリストに追加しましょう。変数ペインの add ボタンをクリックし、user_paramsの入力を開始します。呼び出されたドロップダウンでuser_params変数を選択し、 Enterを押します。

次に、この変数の横にある expand ボタンをクリックし、同じ方法で@parameters変数を展開します。サイン・アップ形式で指定されたユーザー資格情報が表示されます。

ブレークポイントに達すると、コードをステップ実行できます。

ステップ・オーバー

ステップ・オーバーは、現在のスコープ内の次の行に進みます(たとえば、次の行に移動します)。途中でメソッド呼び出しに降下することはありません。

以下の画面では、ユーザーオブジェクトがまだ作成されておらず、@user変数が初期化されていない(なしに等しい)ことがわかります。

Breakpoint

F8 を押すか、デバッグウィンドウのツールバーの Step over ボタンをクリックします。デバッガは次の行、if文に進みます。エディターと変数ペインでは、@user変数が初期化されていることがわかります。

Step over

expand ボタンを使用して、@userのプロパティーを調べます。

ステップ・イン

ステップ・インはデバッガを現在の行のどのメソッド呼び出しにも下降させます。複数のメソッド呼び出しがある場合、それらは実行された順序で訪問されます。メソッド呼び出しがない場合、ステップ・インステップ・オーバーとして動作します。

プログラムの実行を再開するには、 Resume Program ボタンをクリックします。ブラウザに再度アクセスし、別のユーザーをサイン・アップ形式で作成します。スクリプトは、ユーザーが作成された行に到達すると停止します。

Breakpoint

F7 を押すか、 Step into ボタンをクリックします。プログラムの実行は、user_paramsメソッドにジャンプします。このメソッドは、User.newメソッド呼び出し内でパラメータとして呼び出されます。

Step into

もう一度 F7 を押すと、デバッガはStrongParameters(英語)モジュールのparamsメソッドにジャンプします。

Step into

コンソールでデバッグする

デバッガにはコンソールタブがあり、IRBのようなコンソールでデバッグされたアプリケーションと対話できます。

コンソールでuser_paramsの入力を開始し、対応する変数を選択して Enterを押します。

コンソールウィンドウに変数の値が表示されます。

最終更新日: 2019年1月10日