Ruby スクリプトを実行する秀丸マクロ (RSpec に対応)


秀丸エディタで編集中の内容を Ruby スクリプトとして実行するマクロです。
編集中のファイルの名前が "_spec.rb" で終わっている場合には、RSpec で実行します。

exec_ruby.mac

ダウンロード

exec_ruby.mac

※Ruby 2.0.0, RSpec 2.14.7 で動作確認済みです。
※アウトプット枠の背景色を変更する機能は、秀丸エディタ ver 8.30 Beta 31 以降でないと動きません。

機能

  • Ruby スクリプトの終了まで待たなくても実行中に出力が逐次表示されていきます。
  • SJIS 以外の出力も、アウトプット枠に文字化け無しで表示されます。
  • 出力先を以下から選択できます。
    • コマンドプロンプト
    • アウトプット枠
    • 新しいウィンドウ(タブ)
  • 無限ループなどでスクリプトが終了しない場合、簡単に強制終了出来ます。
  • (無題) のまま実行できます。
  • コマンドプロンプトへの出力時は、スクリプトの終了後、キー入力を待ってからコマンドプロンプトを閉じます。
  • スクリプトの文字コードが SJIS でも EUC-JP でも UTF-8 でも問題なく実行できます。

  • ファイル名が "_spec.rb" で終わっている場合は RSpec で実行します。
  • この場合も、コマンドライン引数や出力先などをマクロの先頭で設定できます。
  • 出力先がアウトプット枠の場合には、実行結果に応じてアウトプット枠の文字と背景の色を一時的に変更します。

使い方

初めに、必要に応じてマクロの先頭にある以下を設定を修正してください。

  • Ruby のインタプリタ
  • Ruby の起動オプション
  • 出力先(コマンドプロンプト、アウトプット枠、または、新しいウィンドウ)

マクロを実行すると、編集中の内容が Ruby スクリプトとして実行されます。

改善点などありましたら、コメント欄からご指摘ください。

変更履歴

Ver 3.3 (2014-11-23)

  • ファイルが空の状態で実行したときに、空のファイルを保存するかどうかの確認ダイアログが表示されていた問題を修正

Ver 3.2 (2013-12-21)

  • RSpec の実行時に無効なコマンドライン引数を指定していたバグを修正
  • rspec コマンドが見つからなかった場合のエラー処理を追加

Ver 3.1

  • RSpec での実行結果に応じてアウトプット枠の文字と背景の色を一時的に変更する機能を追加

Ver 3.0

  • ファイル名が _spec.rb で終わる場合は RSpec で実行する機能を追加
  • その他、Ruby インタプリタに指定するデフォルトオプションの修正など

Ver 2.8

  • STDOUT, STRERR の write メソッドをオーバーライドする際、引数が String 型の場合には to_s メソッドをコールしないように変更
カテゴリー: 記事 タグ: , , , , パーマリンク

8 Responses to Ruby スクリプトを実行する秀丸マクロ (RSpec に対応)

  1. ピンバック: 秀丸エディタのお勧めの設定 | TipsZone

  2. ohtorii のコメント:

    はじめまして。 早速使用してみたのですが、コマンドラインへ下記エラーが出力されます、 何か分かりますでしょうか?

    Rubyスクリプトにロードするファイルを作成できませんでした。

    c:/program files/hidemaru/scripts/exec_ruby.mac:151:in <main>': undefined method `write' for File:Class (NoMethodError)

    マクロは変更しておりません。 環境変数(PATH)へc:\ruby\binを追加しています。

    【環境】 Windows7 64bit ruby 1.9.2p136 (2010-12-25 revision 30365) [i386-mswin32] 秀丸エディタ ver 8.30 b21

    よろしくお願い致します。

  3. NORI のコメント:

    Ruby のバージョンが原因と思われます。 Ruby 1.9.3p125 で動作確認してありますので、それより新しいバージョンでお試しください。

  4. ohtorii のコメント:

    ご指摘の通り、rubyを差し替えたところ一歩前進しました。 しかし、まだ動かないようでしたのでもう少しだけお願い致します。 44行目「Rubyスクリプトにロードするファイルを作成」の箇所でファイルが作れず?、if (existfile($required_file) == no) endmacro;の行でマクロが終了しているようです。 該当箇所へmessage文を挟み込んで確認しました。

  5. NORI のコメント:

    exec_ruby.mac と同じフォルダに Ruby スクリプトが作成されるはずの処理です。 exec_ruby.rb が作成されていないか、エクスプローラーで確認してみてください。 書き込み権限がなかったりするのでしょうか?

  6. ohtorii のコメント:

    自分の環境には複数バージョンのrubyがインストールされており、意図しないバージョンのrubyを参照していました。お騒がせしてしまい申し訳ないです。 マクロが動作することを確認できました、これから使用させて頂きます!!

  7. NORI のコメント:

    良かったです。 また何か気づいたことなどありましたら、お気軽にコメントください。

  8. ピンバック: rspec 実行時に「ambiguous option:」と表示される。 | 演劇とかの感想文ブログ

コメントを残す