RubyMine通知をGrowlに送信するには?


40

RubyMineのコンソールにメッセージを送る方法を理解しようとしています。具体的には、Rspec & SporkをRubyMine経由で実行しているため、&がいくつのテストに合格したかを、Growlの通知を受けたいと思います。

私は、この機能のコマンドライン版をAutotestとRedGreenの宝石を使って動作させていましたが、どちらの宝石もRubyMineの中で有用性を保っていないようです。

RubyMineからGrowl通知を正常にプッシュした人はいますか?

誰でも、通知を有効にできるツールやメカニズムについて考えてもらえますか?

  0

@NewAlexandriaあなたの最後の編集は、キーワード「ツール」のを持っていますオフサイトのリソースに対するリクエスト/推奨事項は、この質問をすばやく閉じます。私は「道具」という言葉をヤンクした。 09 3月. 152015-03-09 21:44:37

0

AppleScriptを使用してrspecを実行し、完了時にGrowlを呼び出すことができます。

This applescript integration for RubyMineは、イベントをGrowlにフックする方法のアイデアを提供します。

これは完全な答えではありませんが、合理的なアプローチです。

+1

元のレポを元に戻すために著者と調整しています。ここにいくつかのコードを置くことはなお好ましいですが、このケースでは長いですし、おそらく、この答えのどのバージョンでも多くの量が含まれていたでしょう。どちらのケースでも、私の '担当者'は別として、私はそれを品質管理とは考えていないので、ディスカッションを要請しようとせずにここで起こる膝を下ろすことに同意しない。 YMMV。 09 3月. 152015-03-09 20:23:21

+1

@NewAlexandria私はあなたの編集時に下線を引くのを喜んでします。あなたの編集が完了したらコメントにタグをつけてください。システムは私の投票をすぐに取り戻すことはできません。 09 3月. 152015-03-09 21:42:11

  0

@LynnCrumbling私はリンクを更新しました(FWIWこれまでのところ) 07 10月. 152015-10-07 16:14:20


1

は、このコードはあなたに私がルビーマインのことは知らない

# -*- ruby -*- 

    module Autotest::RedGreen 
    Autotest.send(:alias_method, :real_ruby, :ruby) 
    Autotest.send(:define_method, :ruby) do |*args| 
    real_ruby + %[ -rrubygems -e "require 'redgreen'" ] 
end 

    # Clean the output so other modules can work correctly 
    Autotest.add_hook :ran_command do |at| 
    at.results.each do |r| 
    r.gsub!("\033[31m", "") 
    r.gsub!("\033[32m", "") 
    r.gsub!("\033[33m", "") 
    r.gsub!("\033[0m", "") 
    end 
end 
end 

module Autotest::Growl 
AUTOTEST_IMAGE_ROOT = "~/.autotest_images" 

def self.growl(title, msg, img, pri=0, sticky="") 
system "growlnotify -n autotest --image #{img} -p #{pri} -m '#{msg.inspect} #{title}'  #{sticky}" 
end 

    Autotest.add_hook :red do |at| 
    growl("FAIL", "#{get_results(at)}", "#{AUTOTEST_IMAGE_ROOT}/fail.png", 2) 
end 

    Autotest.add_hook :green do |at| 
    growl("Pass", "#{get_results(at)}", "#{AUTOTEST_IMAGE_ROOT}/pass.png") 
end 

private 
def self.get_results(at) 
results = [at.results].flatten.join("\n") 

    if results.include? 'tests' 
    output = results.slice(/(\d+)\s+tests?,\s*(\d+)\s+assertions?,\s*(\d+)\s+failures? (,\s*(\d+)\s+errors)?/) 
else 
    output = results.slice(/(\d+)\s+examples?,\s*(\d+)\s+failures?(,\s*(\d+)\s+not implemented)?/) 
    end 
    output 
end 
end 

# Esclusioni 
Autotest.add_hook :initialize do |at| 
    %w{.hg .git .svn stories tmtags Rakefile Capfile README spec/spec.opts spec/rcov.opts vendor/gems autotest svn-commit .DS_Store }.each do |exception| 
    at.add_exception(exception) 
end 

    at.add_mapping(/spec\/defaults.rb/) do |f, _| 
    at.files_matching %r%^spec/(controllers|helpers|lib|models|views)/.*\.rb$% 
    end 
end 
+1

誰かがこれをテストして動作することを確認したら、ここでコメントしてください。私はもはやRubyMineで作業していないので、検証できません。 02 9月. 142014-09-02 19:02:58


1

を助けるかもしれないが、これはターミナルで実行する必要があります。

rake db:setup && growlnotify -m 'Finished DB setup'