new file mode 100755
@@ -0,0 +1,58 @@
+#!/bin/sh
+#
+# See ../t4018-diff-funcname.sh's test_diff_funcname()
+#
+
+test_diff_funcname 'ruby: "def" over "class/module"' \
+ 8<<\EOF_HUNK 9<<\EOF_TEST
+def process(parent)
+EOF_HUNK
+require 'asciidoctor'
+
+module Git
+ module Documentation
+ class SomeClass
+ use_some
+
+ def process(parent)
+ puts("hello")
+ puts(ChangeMe)
+ end
+ end
+ end
+end
+EOF_TEST
+
+test_diff_funcname 'ruby: "class" over "class/module"' \
+ 8<<\EOF_HUNK 9<<\EOF_TEST
+class Two
+EOF_HUNK
+module Git
+ module Documentation
+ class One
+ end
+
+ class Two
+ # Spacing for -U1
+ ChangeMe
+ end
+ end
+end
+EOF_TEST
+
+test_diff_funcname 'ruby: picks first "class/module/def" before changed context' \
+ "class Two" \
+ 8<<\EOF_HUNK 9<<\EOF_TEST
+class One
+EOF_HUNK
+module Git
+ module Documentation
+ class One
+ end
+
+ class Two
+ ChangeMe
+ end
+ end
+end
+EOF_TEST
Add a test for the Ruby pattern added way back in ad8c1d9260 (diff: add ruby funcname pattern, 2008-07-31). The "One/Two" picking demonstrates existing behavior, and a general case where we may not do what the user expects since we're not aware of the indentation level. The code is modified from the Ruby code we have in-tree at Documentation/asciidoctor-extensions.rb. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> --- t/t4018/ruby.sh | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100755 t/t4018/ruby.sh