Guard: Ctrl-C рдХреНрд░реИрд╢ рдЧрд╛рд░реНрдб

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЬреВрди 2016  ┬╖  21рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: guard/guard

рдЬрдм рднреА рдореИрдВ рдЪрд▓ рд░рд╣реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ (рдЧрд╛рд░реНрдб-рдЖрд░рдПрд╕рдкреАрд╕реА рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде) рдЧрд╛рд░реНрдб рдЦреЛрд▓ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдЧрд╛рд░реНрдб рдЦреЛрд▓рдХрд░ рдФрд░ ctrl-c рджрдмрд╛рдХрд░ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдкреВрд░реНрдг рдбрд┐рдмрдЧ рд╕рддреНрд░ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдЬрд╛рдирдХрд╛рд░реА рдиреАрдЪреЗред рдпрд╣ рд░реВрдмреА рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 2.3.0 рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди 2.3.1 рдкрд░ рдирд╣реАрдВред

$ bundle exec guard --debug
13:09:37 - DEBUG - Notiffany: gntp not available (Please add "gem 'ruby_gntp'" to your Gemfile and run your app with "bundle exec".).
13:09:37 - DEBUG - Notiffany: growl not available (Unsupported platform "linux-gnu").
13:09:37 - DEBUG - Notiffany: terminal_notifier not available (Unsupported platform "linux-gnu").
13:09:37 - DEBUG - Notiffany: libnotify not available (Please add "gem 'libnotify'" to your Gemfile and run your app with "bundle exec".).
13:09:37 - DEBUG - Command execution: which notify-send
13:09:37 - DEBUG - Notiffany: notifysend not available (libnotify-bin package is not installed).
13:09:37 - DEBUG - Notiffany: notifu not available (Unsupported platform "linux-gnu").
13:09:37 - DEBUG - Command execution: {"ALTERNATE_EDITOR"=>"false"} emacsclient --eval '1'
13:09:37 - DEBUG - Notiffany: emacs not available (Emacs client failed).
13:09:37 - DEBUG - Command execution: tmux -V
13:09:37 - DEBUG - Notiffany: file not available (No :path option given).
13:09:37 - DEBUG - Command execution: tmux -V
13:09:37 - DEBUG - Notiffany is using Tmux to send notifications.
13:09:37 - DEBUG - Command execution: tmux list-clients -F '#{client_tty}'
13:09:37 - DEBUG - Command execution: tmux show -t /dev/pts/0
13:09:37 - DEBUG - Notiffany is using TerminalTitle to send notifications.
13:09:37 - DEBUG - Command execution: hash stty
13:09:37 - DEBUG - Guard starts all plugins
13:09:37 - DEBUG - Hook :start_begin executed for Guard::RSpec
13:09:37 - INFO - Guard::RSpec is running
13:09:37 - DEBUG - Hook :start_end executed for Guard::RSpec
13:09:38 - INFO - Guard is now watching at '/mnt/data1/home/andrew/projects/039-disciple/disciple-api'
13:09:38 - DEBUG - Start interactor
[1] guard(main)>  [ pressed ctrl-c here ]
[1] guard(main)> тПО                                                                                                                                                                                                                                                                                                            $  [typed a few random characters]
$ aError: Input/output error - read
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:198:in `readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:198:in `block in input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:115:in `interruptible_region'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:197:in `input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:183:in `block in read_line'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:129:in `handle_read_errors'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:170:in `read_line'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:98:in `read'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:68:in `block in repl'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:67:in `loop'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:67:in `repl'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:38:in `block in start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:61:in `__with_ownership'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:79:in `with_ownership'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:38:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:15:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/pry_class.rb:169:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-byebug-3.4.0/lib/pry-byebug/pry_ext.rb:11:in `start_with_pry_byebug'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/guard-2.14.0/lib/guard/jobs/pry_wrapper.rb:102:in `block (2 levels) in _switch_to_pry'
[... this section below repeats several times ...]
[1] guard(main)> Error: Input/output error - read
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:198:in `readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:198:in `block in input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:115:in `interruptible_region'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:197:in `input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:183:in `block in read_line'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:129:in `handle_read_errors'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:170:in `read_line'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:98:in `read'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:68:in `block in repl'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:67:in `loop'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:67:in `repl'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:38:in `block in start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:61:in `__with_ownership'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:79:in `with_ownership'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:38:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:15:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/pry_class.rb:169:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-byebug-3.4.0/lib/pry-byebug/pry_ext.rb:11:in `start_with_pry_byebug'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/guard-2.14.0/lib/guard/jobs/pry_wrapper.rb:102:in `block (2 levels) in _switch_to_pry'
[... end of repeating section ...]
[1] guard(main)> Error: Input/output error - read
FATAL: Pry failed to get user input using `Readline`.
To fix this you may be able to pass input and output file descriptors to pry directly. e.g.
  Pry.config.input = STDIN
  Pry.config.output = STDOUT
  binding.pry

13:11:22 - DEBUG - Interactor was stopped or killed
13:11:22 - DEBUG - Guard stops all plugins
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 status-left-bg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 status-right-bg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 status-left-fg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 status-right-fg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 message-bg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 message-fg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 display-time
$ uname -a
Linux triton.avito.uk 4.5.0-x86_64-linode65 #2 SMP Mon Mar 14 18:01:58 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux
$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реА рд░реВрдмреА 2.3.1 рд░реАрдбрд▓рд╛рдЗрди рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рд╣реИ:

$ ruby -rreadline -e 'puts Readline::VERSION'
6.3

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдЪрд░рдг рдХреНрдпрд╛ рд╣реИрдВред

bug help needed work in progress

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЖрд░рдПрд╕рдкреАрд╕реА рдХреЗ рджреМрд░рд╛рди рд╕реАрдЯреАрдЖрд░рдПрд▓-рд╕реА рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЧрд╛рд░реНрдб рдлрд┐рд░ рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЪрд▓рд╛рдПрдЧрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд╣реБрдд рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдмрдВрдбрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рдФрд░ рдмрд┐рдирд╛ рд╕рдорд╛рди рд╣реИред рдореИрдВрдиреЗ рдКрдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЗрд╕рд╕реЗ рдлрд░реНрдХ рдкрдбрд╝рд╛ рдХрд┐ рдореЗрд░рд╛ рдЧрд╛рд░реНрдб рдЖрд░рдПрд╕рдкреАрд╕реА рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рдмрд╛рдж рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ред

рдХреЛрдИ рдЙрдкрд╛рдп? рдХреНрдпрд╛ рдпрд╣ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ? рдЕрдЧрд░ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рддрддреНрдХрд╛рд▓ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рддреЛ рдореБрдЭреЗ рдЖрдВрддрд░рд┐рдХ рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рдзреАрдореЗ рд╕реНрдкреЗрдХреНрд╕ рд╣реИрдВ рдФрд░ рдПрдХ рд╕реНрдкреЗрдХ рдХреЛ рдмреАрдЪ рдореЗрдВ рд░реЛрдХрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рд╕реЗ рдмрд╣реБрдд рд╕рдордп рдХреА рдмрдЪрдд рд╣реЛрдЧреАред :)

рд╕рднреА 21 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рднреА реи.реи.рел рдХреЛ рдЗрд╕рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВ рднреА рдЗрд╕рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рд╡рд╣реА рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕), рд▓реЗрдХрд┐рди рд░реВрдмреА v2.3.0 , рдЧрд╛рд░реНрдб v2.13.0 ред

рдЕрдЧрд░ рдореИрдВ рдЧрд╛рд░реНрдб рдХреЛ bundle exec guard рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдкреНрд░реЙрдореНрдкреНрдЯ рдкрд░ Ctrl-C рджрдмрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдореИрдВ рдЪрд▓рд╛рдиреЗ guard , рдмрдВрдбрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рджрдмрд╛рдиреЗ Ctrl-C рдореБрджреНрджрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред

рдкреВрд░реНрдг рд░реВрдмреА рдФрд░ рд░реАрдбрд▓рд╛рдЗрди рд╕рдВрд╕реНрдХрд░рдг:

$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15.5.0]
$ ruby -rreadline -e 'puts Readline::VERSION'
6.3

Pry рдкреНрд░реЙрдореНрдкреНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рдХреЗ рд╕рдорд╛рди рдЯрд░реНрдорд┐рдирд▓ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдорд┐рд▓рддрд╛ рд╣реИ:
https://github.com/pry/pry/issues/1275
https://github.com/pry/pry/issues/1183
https://github.com/guard/guard/issues/719

рдпрджрд┐ рдореИрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ rb-readline рдордгрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдмрд╛рдж рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Ctrl-C рд╕рдорд╛рди рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдордгрд┐ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде, рдЧрд╛рд░реНрдб рдореЗрд░реЗ рд░реАрдбрд▓рд╛рдЗрди рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ:

[1] guard(main)> Readline::VERSION
=> "5.2"

рдпрд╣рд╛рдВ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ ... рдЬреИрд╕рд╛ рдХрд┐ @WilHall рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ, рдмрд╛рд╣рд░реА рдмрдВрдбрд▓рд░ рдареАрдХ рд╣реИред

$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin14]
$ guard -v
Guard version 2.14.0

рдореЗрд░рд╛ рд░реАрдбрд▓рд╛рдЗрди рд╕рдВрд╕реНрдХрд░рдг 6.3 рдЧрд╛рд░реНрдб рдХреЗ рдЕрдВрджрд░ рдФрд░ рдмрд╛рд╣рд░ рджреЛрдиреЛрдВ рдЬрдЧрд╣ рд╣реИред

рдпрд╣ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рдореИрдВ рд╕рдВрднрд╡рддрдГ рдПрдХ "рдХреНрд╡рд┐рдХрдлрд┐рдХреНрд╕" рд╢рд╛рдЦрд╛ рдмрдирд╛рдЙрдВрдЧрд╛ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдКрдВрдЧрд╛ред

рдареАрдХ рд╣реИ, рдореИрдВ рдХреБрдЫ рд╣реИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╢рд╛рдЦрд╛ рдмрдирд╛рддрд╛ рд╣реВрдВ: https://github.com/guard/guard/tree/experimental_fixes

рдпрд╣рд╛рдВ Gemfile рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

gem 'guard', github: 'guard/guard', branch: 'experimental_fixes'

рдлрд┐рд░ рдмрдВрдбрд▓ рдЕрдкрдбреЗрдЯ рдФрд░ bundle exec guard рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рднреА рдорджрдж рдорд┐рд▓рддреА рд╣реИ:

bundle exec guard -n f

рдХреГрдкрдпрд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕реБрдзрд╛рд░ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВред

рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

  1. ctrl-C . рдХреЗ рд╕рд╛рде рдЧрд╛рд░реНрдб рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ Pry рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрдирд╛ рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП
  2. рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╢реЗрд▓ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЛ рдиреАрдЪреЗ рдирд╣реАрдВ рдЫрд┐рдкрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  3. рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ TMux рдФрд░ TerminalTitle рджреЛрдиреЛрдВ рдиреЛрдЯрд┐рдлрд╝рд╛рдпрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
  4. рдореИрдВрдиреЗ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд▓рдВрдмрд░рдЬреИрдХ рд▓реЙрдЧрд┐рдВрдЧ рд╕рдордп рдлреНрд▓рд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реЛ рдЬрдм рдЗрд╕реЗ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
  5. STDERR рд╕реНрдЯреНрд░реАрдо рдЕрдм рдмрдВрдж рдирд╣реАрдВ рд╣реИ
  6. Pry рдЕрдм рдорд╛рд░рд╛ рдирд╣реАрдВ рдЧрдпрд╛ рдФрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдпрд╛ - рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рдЬрд╛рдЧ рдЧрдпрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрдиреНрдп рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ "рд▓рдЯрдХрд╛" рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП)

рдХреБрдЫ рдкреНрд░рддрд┐рдЧрдорди/рдореБрджреНрджреЗ:

  1. рдпрджрд┐ рдХреЛрдИ рдЧрд╛рд░реНрдб/рдХрд╛рд░реНрдп рд░рдВрдЧреАрди рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдХрдВрд╕реЛрд▓ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
  2. рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реИ (рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдкрд╣рд▓реЗ рдореБрджреНрджреЛрдВ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ)
  3. рдПрдордЖрд░рдЖрдИ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рд░реВрдмреА рдкрд░ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2.3.1

рдЕрдиреНрдп рдЙрдкрд╛рдп:

рдпрджрд┐ рдЖрдк рд╣рддрд╛рд╢ рд╣реИрдВ, рддреЛ рдЖрдк рдмрд┐рдирд╛ рдкреНрд░рд╛рдЗ рдХреЗ рдФрд░ рдмрд┐рдирд╛ рд╕реВрдЪрдирд╛ рдХреЗ рдЧрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

bundle exec guard -n f -i

рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓рддреА рд╣реИ рдпрд╛ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдареАрдХ рдХрд░рдиреЗ рдФрд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдкреАрдЖрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдЬреЛ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рд╕реБрдзрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рдЕрдЪреНрдЫреЗ рд╣реЛрдВрдЧреЗ)ред

рдореИрдВрдиреЗ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рд╣реИрдВред

рдЖрдк рдЙрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛ bundle update рдпрджрд┐ рдЖрдк рдЙрдкрд░реЛрдХреНрдд Gemfile рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ) рддреЛ рдЗрд╕реЗ рдЕрдкрдиреЗ Guardfile рдЬреЛрдбрд╝рдХрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ:

UI.options.merge!(flush_seconds: 0, level: :debug, device: 'guard.log')
notification :off

рдпрд╣ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ guard.log рдореЗрдВ рднреА рд▓реЙрдЧ рдХрд░реЗрдЧрд╛ред (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ OSX рдкрд░ рдкреВрд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред

рдзрдиреНрдпрд╡рд╛рдж @ e2 , рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореБрдЭреЗ рдмрд╣реБрдд рднрд╛рдЧреНрдп рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ:

  • рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рдХреЗ рдмрд┐рдирд╛ рдЪрд▓рд╛рдиреЗ рдкрд░ Ctrl-C рдкрд░ рдХреНрд░реИрд╢рд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ "рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ_рдлреАрдЪрд░реНрд╕" рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд░рд╣рддрд╛ рд╣реИред
  • -n f рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред
  • -i рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХреНрд░реИрд╢ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдЬрдм рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ Ctrl-C'ing (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЫреЛрдбрд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ!)ред

Ctrl-D, рд╢рд╛рдпрдж рдПрдХ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдЫреЛрдбрд╝рдиреЗ рдкрд░ рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдкрд╡рд╛рджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдорд┐рд▓рддрд╛ рд╣реИ:

19:56:17 - INFO - Bundle already up-to-date
19:56:17 - INFO - Guard is now watching at '/mnt/data1/home/andrew/projects/042-joinly/joinly-app'
^Clog writing failed. can't modify frozen IOError
тЮЬ  joinly-app git:(master) тЬЧ
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/bundler/gems/guard-d299ad21cfa8/lib/guard/commander.rb:69:in `stop': undefined method `destroy' for #<Guard::Jobs::Sleep:0x0056104497dd80> (NoMethodError)
        from /home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/bundler/gems/guard-d299ad21cfa8/lib/guard/commander.rb:53:in `start'
        from /home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/bundler/gems/guard-d299ad21cfa8/lib/guard/cli/environments/valid.rb:16:in `start_guard'
        from /home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/bundler/gems/guard-d299ad21cfa8/lib/guard/cli.rb:122:in `start'
[...]

рддрдерд╛

19:56:29 - INFO - Bundle already up-to-date
19:56:30 - INFO - Guard is now watching at '/mnt/data1/home/andrew/projects/042-joinly/joinly-app'
^CE, [2016-08-01T19:56:38.584021 #10597] ERROR -- : run() in thread failed: stream closed:\n /home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:300:in `readpartial'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:300:in `readpartial'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:271:in `read_events'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:238:in `process'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:221:in `run'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/listen-3.1.5/lib/listen/adapter/linux.rb:39:in `_run'
[...]

Guardfile рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде bundle exec guard -n f рддреНрд░реБрдЯрд┐ рдореЗрдВ рджреЗрд░реА рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИред рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди Ctrl-C рджрдмрд╛рдиреЗ рд╕реЗ рдЕрднреА рднреА Pry рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рдХреНрд░рд┐рдп рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдорд┐рд╢реНрд░рд┐рдд STDOUT рдХреЛ рд▓рд┐рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕реА рддрд░рд╣ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ:

[1] guard(main)> Error: Input/output error - read
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `block in input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.4/lib/pry/input_lock.rb:115:in `interruptible_region'

рдзрдиреНрдпрд╡рд╛рдж @Odaeus рдЗрд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдиреЙрди-рдкреНрд░рд╛рдЗ рдЗрдВрдЯрд░реЗрдХреНрдЯрд░ рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ред (рдореИрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рдПрдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЛ рдзрдХреНрдХрд╛ рджрд┐рдпрд╛ рд╣реИ)ред

рджреВрд╕рд░рд╛, рдЖрдк рдЗрд╕ рдЖрд░рдмреА-рдЗрдиреЛрдЯрд┐рдлрд╛рдИ рдмрдЧ рдореЗрдВ рднрд╛рдЧреЗ: https://github.com/nex3/rb-inotify/pull/59

рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдлрд┐рдХреНрд╕ рдмрдирд╛рдпрд╛ рд╣реИ (рдЕрднреА рддрдХ рд╡рд┐рд▓рдп рдпрд╛ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рддрдм рддрдХ, рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ Gemfile :

gem 'rb-inotify', github: 'e2/rb-inotify', branch: 'e2-fix_ioerror_when_closed'

рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ 2 рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ред

рд╕рдорд╕реНрдпрд╛ 3 рдХреЗ рд▓рд┐рдП - рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдХрд╛рд░реНрдп рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Guardfile :

UI.options.merge!(flush_seconds: 0, level: :debug, device: 'guard.log')
notification :off

рдФрд░ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ tail -f guard.log рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдЪрд┐рдВрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ Pry рд╕рддреНрд░ рдкреНрд░рдмрдВрдзрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рдВрднрд╡рдд: рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдкреВрд░рд╛ рд╢рдирд┐рд╡рд╛рд░ рд▓рдЧреЗрдЧрд╛ :(

рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдФрд░ рдкреИрдЪ рд╣реИрдВ рддреЛ рдореИрдВ рдпрд╣рд╛рдВ рд╕рднреА рдХреЛ ASAP рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛ рджреВрдВрдЧрд╛ред

рдареАрдХ рд╣реИ, рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдБ):

рдЖрдкрдХреЗ Gemfile :

 gem "guard", github: "guard/guard",
                branch: "experimental_fixes", ref: "c6ab8a0"

 gem "listen", require: false, github: "guard/listen",
                branch: "advanced_thread_debugging", ref: "31053de"

  gem "guard-rspec", require: false, github: "guard/guard-rspec",
                     branch: "ctrl_c_workaround", ref: "ee0b21d"

  gem "rb-inotify", require: false, github: "e2/rb-inotify",
                    branch: "e2-fix_ioerror_when_closed", ref: "99d2101"

рдпрд╣ рдХрд╛рдлреА рдХреБрдЫ рдкреИрдЪ рд╣реИрдВ - рдмреЗрдЭрд┐рдЭрдХ рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ рдФрд░ рдореБрдЭреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рднреЗрдЬреЗрдВ рдФрд░ рдЗрди рдкреИрдЪ рдХреЛ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рдЬрд╛рд░реА рдХрд░реЗрдВред

рдзрдиреНрдпрд╡рд╛рдж!

@ e2 рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВрдиреЗ ctrl-c рдХреЛ рдХрд╣рд╛рдБ рдорд╛рд░рд╛, рдпрд╣ рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рдкрд░ рд╡рд╛рдкрд╕ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдмреАрдЪ рдореЗрдВ рд╣реИред рдпрд╣ рдЕрдВрдд рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдЙрдард╛рддрд╛ рд╣реИ, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рд╕реЗ рдмрд╛рд╣рд░ рдЖ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪрд╢реНрдорд╛ рдЪрд▓рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЙрдореНрдореАрдж рд╣реИ рдХреА рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛!

^CGuard: INT signal, handling inside trap...                                                                                                             |  ETA: 00:02:03
Guard Pry job: handling interrupt
Guard Pry job: no thread, interrupting Guard

RSpec is shutting down and will print the summary report... Interrupt again to force quit.
Guard::RSpec: Interrupted by user. Waiting for RSpec to die...
тЮЬ  source_code git:(development) тЬЧ  3/17 |========== 17 ==========>                                                                                                                         |  ETA: 00:02:28
Pending: (Failures listed here are expected and do not affect your suite's status)

  1) items can export items pdf export
     # Temporarily skipped with xit
     # ./spec/features/items_spec.rb:38


Top 3 slowest examples (25.2 seconds, 83.1% of total time):
  items can click export button and walk through modals
    14.92 seconds ./spec/features/items_spec.rb:26
  items appear in proper time periods
    10.28 seconds ./spec/features/items_spec.rb:51
  items can export pdf export
    0.00005 seconds ./spec/features/items_spec.rb:38

Finished in 30.33 seconds (files took 1.14 seconds to load)
3 examples, 0 failures, 1 pending

Randomized with seed 54136

Coverage report generated for RSpec to /Users/justin/dev/source_code/coverage. 1759 / 3324 LOC (52.92%) covered.

тЮЬ  source_code git:(development) тЬЧ
10:18:10 - INFO - Inspecting Ruby code style: spec/features/items_spec.rb
Inspecting 1 file
.

1 file inspected, no offenses detected

10:18:11 - INFO - Bye bye...
/Users/justin/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/lumberjack-1.0.10/lib/lumberjack/device/writer.rb:89:in `close': closed stream (IOError)
    from /Users/justin/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/lumberjack-1.0.10/lib/lumberjack/device/writer.rb:89:in `close'
    from /Users/justin/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/lumberjack-1.0.10/lib/lumberjack/logger.rb:140:in `close'
    from /Users/justin/dev/source_code/vendor/cache/guard-c6ab8a0b70a3/lib/guard/aruba_adapter.rb:51:in `execute'
    from /Users/justin/dev/source_code/vendor/cache/guard-c6ab8a0b70a3/lib/guard/aruba_adapter.rb:20:in `execute!'
    from /Users/justin/dev/source_code/vendor/cache/guard-c6ab8a0b70a3/bin/_guard-core:11:in `<main>'

@jetheredge - рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рдмрд╣реБрдд рдЬрд▓реНрдж рдЧреМрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реЛрдЧрд╛ :(

рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реИред

рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, RSpec рдХреЛ рдмрд╕ рд░реБрдХ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЧрд╛рд░реНрдб рдХреЛ Pry рдкреНрд░реЙрдореНрдкреНрдЯ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЧрд╛рд░реНрдб рдЖрдИрдПрдирдЯреА рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдлрдБрд╕рд╛рддрд╛ рд╣реИред рдпрд╣ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ Pry рдХреЛ рдорд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдЧрд░ Pry рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдФрд░ рдХреЛрдИ рдиреМрдХрд░реА рдирд╣реАрдВ рд╣реИ) рддреЛ рдЗрд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдЧрд░ рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реВрдВрдЧрд╛ред (рдореВрд▓ рд░реВрдк рд╕реЗ, "рдЧрд╛рд░реНрдб рдкреНрд░рд╛рдЗ рдЬреЙрдм: рдиреЛ рдереНрд░реЗрдб, рдЗрдВрдЯрд░рдкреНрдЯрд┐рдВрдЧ рдЧрд╛рд░реНрдб" рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдЗрдВрдЯрд░рдкреНрдЯ рдХреЛ рдХреЗрд╡рд▓ PryWrapper рдореЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

@ рдИ тАЛтАЛ2 рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реВрдВрдЧрд╛ред

@jetheredge - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:

https://github.com/guard/guard/blob/c6ab8a0/lib/guard/jobs/pry_wrapper.rb#L108

рдХреЗрд╡рд▓ "рд╡рд╛рдкрд╕реА" рдХреЗ рд╕рд╛рдеред

рд╕рд╛рде рд╣реА, Ctrl-C рдХреЛ рд╡реИрд╕реЗ рднреА рдЧрд╛рд░реНрдб рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред

@e2 - рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рд╕рдкреНрддрд╛рд╣ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рд╡реНрдпрд╕реНрдд рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдЬрд▓реНрдж рд╣реА рдПрдХ рдкреАрдЖрд░ рдмрдирд╛рдКрдВрдЧрд╛ред

рд╣рдо рд╕рдм рд╣реИрдВ, рдореБрдЭ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ;)

(рдпрджрд┐ рдЖрдк рдореБрдЭ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЧрд╛рд░реНрдб рдореЗрдВ рдореБрджреНрджреЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦреЗрдВ -
рдЙрдирдореЗрдВ рд╕реЗ рд▓рдЧрднрдЧ рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ)ред

рдЧреБрд░реБ, рдЕрдЧрд╕реНрдд резрез, реирежрезрем рдХреЛ режрек:резреж:режрео рдкреВрд░реНрд╡рд╛рд╣реНрди режренрежреж рдмрдЬреЗ, рдЬрд╕реНрдЯрд┐рди рдПрдереЗрд░реЗрдЬ рдиреЗ рд▓рд┐рдЦрд╛:

@e2 - рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рд╕рдкреНрддрд╛рд╣ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рд╡реНрдпрд╕реНрдд рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдЬрд▓реНрдж рд╣реА рдПрдХ рдкреАрдЖрд░ рдмрдирд╛рдКрдВрдЧрд╛ред

рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ:
https://github.com/guard/guard/issues/842#issuecomment -239132345

рдореИрдВ рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рд╛ рд╣реВрдВ, рдпрд╣ рдореЗрд░реА рд╕реВрдЪреА рдореЗрдВ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рджрдлрдирд╛рдпрд╛ рд╣реИред рдореИрдВ рдЕрднреА рднреА рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рднреА рджрдлрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдкреИрдЪ рдХреЛ рдкреВрд░рд╛ рдФрд░ рдЬрд╛рд░реА рдХрд░ рджреВрдВрдЧрд╛ред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЖрд░рдПрд╕рдкреАрд╕реА рдХреЗ рджреМрд░рд╛рди рд╕реАрдЯреАрдЖрд░рдПрд▓-рд╕реА рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЧрд╛рд░реНрдб рдлрд┐рд░ рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЪрд▓рд╛рдПрдЧрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд╣реБрдд рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдмрдВрдбрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рдФрд░ рдмрд┐рдирд╛ рд╕рдорд╛рди рд╣реИред рдореИрдВрдиреЗ рдКрдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЗрд╕рд╕реЗ рдлрд░реНрдХ рдкрдбрд╝рд╛ рдХрд┐ рдореЗрд░рд╛ рдЧрд╛рд░реНрдб рдЖрд░рдПрд╕рдкреАрд╕реА рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рдмрд╛рдж рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ред

рдХреЛрдИ рдЙрдкрд╛рдп? рдХреНрдпрд╛ рдпрд╣ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ? рдЕрдЧрд░ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рддрддреНрдХрд╛рд▓ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рддреЛ рдореБрдЭреЗ рдЖрдВрддрд░рд┐рдХ рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рдзреАрдореЗ рд╕реНрдкреЗрдХреНрд╕ рд╣реИрдВ рдФрд░ рдПрдХ рд╕реНрдкреЗрдХ рдХреЛ рдмреАрдЪ рдореЗрдВ рд░реЛрдХрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рд╕реЗ рдмрд╣реБрдд рд╕рдордп рдХреА рдмрдЪрдд рд╣реЛрдЧреАред :)

рдореБрдЭреЗ MacOs Sierra рдкрд░ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИред

рдЬрдм рдореИрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд░рджреНрдж рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЕрдЧрд▓реЗ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдпрд╣ рджреЗрдЦрдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред MacOS рдХреИрдЯрд╛рд▓рд┐рдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bgentry picture bgentry  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Antti picture Antti  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mockdeep picture mockdeep  ┬╖  23рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thibaudgg picture thibaudgg  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

greyblake picture greyblake  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ