[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]