The last merge introduced a slight behaviour change that caused spin to stop working with kicker. kicker passes files like so: spin push -r test/unit/foo.rb -e '' The -e option is required when the executable is `ruby`, but spin just needs to not blow up with it. The change to split on ':' and take the first element will return nil for an empty string, where before it was simply an empty string. ''.split(':') #=> nil The to_s ensures that we always send a String to File.exist? so it doesn't break on us.
Also, pull the fork logic out into a method. No need to duplicate that logic.