RubyMine 알림을 Growl에 보내는 방법은 무엇입니까?


40

나는 RubyMine의 콘솔이 사다리에 메시지를 보내는 방법을 알아 내려고하고있다. 특히 RubyMine을 통해 Rspec & Spork를 실행 했으므로 &이 얼마나 많은 테스트를 통과했는지에 대해 Growl 알림을 받고 싶습니다.

이 기능의 명령 줄 버전은 Autotest 및 RedGreen 보석을 통해 작동했지만 보석도 RubyMine에서 유용성을 유지하지 못합니다.

누군가 RubyMine에서 Growl 알림을 성공적으로 푸시 했습니까?

누구나 알림을 활성화 할 수있는 도구 나 메커니즘을 생각할 수 있습니까?

  0

@NewAlexandria 귀하의 마지막 편집이 키워드 "도구"에있다 그것은 - 오프 사이트 리소스에 대한 요청/권장 사항은이 질문을 빨리 닫을 것입니다. 나는 '도구'라는 단어를 꺼내려고했다. 09 mar. 152015-03-09 21:44:37

0

AppleScript로 rspec을 실행 한 다음 완료되면 Growl을 호출 할 수 있습니다.

This applescript integration for RubyMine은 Growl에 이벤트를 연결하는 방법을 제공합니다.

완전한 대답은 아니지만 합리적인 방법입니다.

+1

원본 repo를 복원하려면 작성자와 협의 중입니다. 여기에 몇 가지 코드를 넣는 것이 여전히 바람직합니다. 그러나이 경우에는 길었고 아마도이 버전의 모든 버전에 많은 양이 포함되었을 것입니다. 두 경우 모두, 그리고 제 'rep'를 제쳐두고, 나는 품질 중재를 고려하지 않았기 때문에 토론을 구하려고 시도하지 않고 여기에서 일어나는 무릎 뽑기 downvoting에 동의하지 않고 obv. YMMV. 09 mar. 152015-03-09 20:23:21

+1

@NewAlexandria 귀하의 편집시에 다운 바우트를 취소 해 드리겠습니다. 편집이 완료되면 댓글에 나를 태그하십시오. 이 시스템으로 지금 당장 내 투표를 취소 할 수는 없습니다. 09 mar. 152015-03-09 21:42:11

  0

@LynnCrumbling 링크를 업데이트했습니다. (FWIW this far later) 07 oct. 152015-10-07 16:14:20


1

이 코드는 당신에게 내가 RubyMine 모르는

# -*- 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 sep. 142014-09-02 19:02:58


1

도움이 될 수 있지만,이 터미널에서 수행해야합니다

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