ruby-changes:63957
From: Benoit <ko1@a...>
Date: Sat, 5 Dec 2020 19:42:11 +0900 (JST)
Subject: [ruby-changes:63957] bb3d705819 (master): Add MSpec tool to automatically wrap spec files with a guard
https://git.ruby-lang.org/ruby.git/commit/?id=bb3d705819 From bb3d70581972969a01c8ba7f2f3477ec92224f97 Mon Sep 17 00:00:00 2001 From: Benoit Daloze <eregontp@g...> Date: Sat, 5 Dec 2020 11:36:22 +0100 Subject: Add MSpec tool to automatically wrap spec files with a guard diff --git a/spec/mspec/tool/wrap_with_guard.rb b/spec/mspec/tool/wrap_with_guard.rb new file mode 100755 index 0000000..5b1bf4d --- /dev/null +++ b/spec/mspec/tool/wrap_with_guard.rb @@ -0,0 +1,28 @@ https://github.com/ruby/ruby/blob/trunk/spec/mspec/tool/wrap_with_guard.rb#L1 +#!/usr/bin/env ruby +# Wrap the passed the files with a guard (e.g., `ruby_version_is ""..."3.0"`). +# Notably if some methods are removed, this is a convenient way to skip such file from a given version. +# Example usage: +# $ spec/mspec/tool/wrap_with_guard.rb 'ruby_version_is ""..."3.0"' spec/ruby/library/set/sortedset/**/*_spec.rb + +guard, *files = ARGV +abort "Usage: #{$0} GUARD FILES..." if files.empty? + +files.each do |file| + contents = File.binread(file) + lines = contents.lines.to_a + + lines = lines.map { |line| line.chomp.empty? ? line : " #{line}" } + + version_line = "#{guard} do\n" + if lines[0] =~ /^\s*require.+spec_helper/ + lines[0] = lines[0].sub(/^ /, '') + lines.insert 1, "\n", version_line + else + warn "Could not find 'require spec_helper' line in #{file}" + lines.insert 0, version_line + end + + lines << "end\n" + + File.binwrite file, lines.join +end -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/