47 votes

Comment Envoyer RubyMine Notifications Growl?

Je suis à essayer de comprendre comment obtenir RubyMine de la console pour envoyer des messages à grogner. Plus précisément, depuis que j'ai exécuter Rspec & Spork par le biais de RubyMine, j'aimerais obtenir des notifications Growl de la façon dont de nombreux tests passés & échoué.

J'ai eu la version ligne de commande de cette fonction de travail via l'Autotest et RedGreen gemmes, mais ni gem semble conserver son utilité à l'intérieur de RubyMine.

Quelqu'un a réussi à pousser des notifications Growl de RubyMine?

Comment peut-on penser de l'un des outils ou de mécanismes qui pourraient permettre de notification?

1voto

Ashraf.Shk786 Points 36

Peut-être Ce code va vous aider à

    # -*- 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

-1voto

New Alexandria Points 3106

Vous pourrait déclencher la rspec exécuter avec un AppleScript, puis lors de l'achèvement d'appel de Grogner.

Cette applescript intégration de RubyMine donne une idée d'un moyen d'attirer les évènements dans un Grognement.

Ce n'est pas une réponse complète, mais c'est une approche raisonnable.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X