Почему это не выполняет системную команду? - PullRequest
0 голосов
/ 08 апреля 2011

Я собрал все это с помощью сценариев, которые я нашел в Интернете, но я не уверен, почему моя команда put не выполняет системную команду? Он просто сидит в терминале без исполнения. Когда я попробовал систему («rspec spec»), она работала, но я не смог захватить вывод.

def run(cmd)
  `#{cmd}`
end

def run_spec_files
  system('clear')
  result = "rspec spec"
  puts result
  growl(result)
end

def growl(message)
  growlnotify = `which growlnotify`.chomp
  unless growlnotify.empty?
    title = "Test Results"
    options = "-w -n Watchr -m '#{message}' '#{title}'"
    run("#{growlnotify} #{options} &")
  end
end

watch( 'lib/(.*)\.rb' )      { run_spec_files }

1 Ответ

5 голосов
/ 08 апреля 2011

puts Просто распечатывает строку, которую вы передаете. Он не выполняет его в оболочке. Обратные пометки, как в вашем run методе, будут выполняться в оболочке. Попробуйте это:

def run_spec_files
  system('clear')
  result = run("rspec spec")
  puts result
  growl(result)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...