diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 647641d..81a61bf 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -17,6 +17,35 @@ def stub_dotfile! File.should_receive(:readable?).at_least(:once).with(dotfile).and_return(false) end -# Infinity Test runs tests as subprocesses, which sets STDOUT.tty? to false and -# would otherwise prematurely disallow colors. We'll test the defaults later. +# The following is needed for the Infinity Test. It runs tests as subprocesses, +# which sets STDOUT.tty? to false and would otherwise prematurely disallow colors. AwesomePrint.force_colors! + +# Ruby 1.8.6 only: define missing String methods that are needed for the specs to pass. +if RUBY_VERSION < '1.8.7' + class String + def shellescape # Taken from Ruby 1.9.2 standard library, see lib/shellwords.rb. + return "''" if self.empty? + str = self.dup + str.gsub!(/([^A-Za-z0-9_\-.,:\/@\n])/n, "\\\\\\1") + str.gsub!(/\n/, "'\n'") + str + end + + def start_with?(*prefixes) + prefixes.each do |prefix| + prefix = prefix.to_s + return true if prefix == self[0, prefix.size] + end + false + end + + def end_with?(*suffixes) + suffixes.each do |suffix| + suffix = suffix.to_s + return true if suffix == self[-suffix.size, suffix.size] + end + false + end + end +end