patch 7.4.1951
Problem:    Ruby test is old style.
Solution:   Convert to a new style test. (Ken Takata)
diff --git a/src/Makefile b/src/Makefile
index 5b510e0..76b16b6 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1986,7 +1986,6 @@
 	test_marks \
 	test_nested_function \
 	test_options \
-	test_ruby \
 	test_search_mbyte \
 	test_signs \
 	test_tagcase \
@@ -2015,6 +2014,7 @@
 	test_backspace_opt \
 	test_cdo \
 	test_channel \
+	test_cmdline \
 	test_cursor_func \
 	test_delete \
 	test_ex_undo \
@@ -2035,6 +2035,7 @@
 	test_json \
 	test_langmap \
 	test_lispwords \
+	test_man \
 	test_matchadd_conceal \
 	test_matchadd_conceal_utf8 \
 	test_matchstrpos \
@@ -2047,12 +2048,14 @@
 	test_regexp_latin \
 	test_regexp_utf8 \
 	test_reltime \
+	test_ruby \
 	test_searchpos \
 	test_set \
 	test_sort \
 	test_statusline \
 	test_syn_attr \
 	test_syntax \
+	test_usercommands \
 	test_tabline \
 	test_tagjump \
 	test_timers \
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 2dbdc32..a22a76f 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -106,7 +106,6 @@
 	test_marks.out \
 	test_nested_function.out \
 	test_options.out \
-	test_ruby.out \
 	test_search_mbyte.out \
 	test_signs.out \
 	test_tagcase.out \
@@ -180,6 +179,7 @@
 	    test_packadd.res \
 	    test_perl.res \
 	    test_quickfix.res \
+	    test_ruby.res \
 	    test_syntax.res \
 	    test_usercommands.res \
 	    test_viminfo.res \
diff --git a/src/testdir/test_ruby.in b/src/testdir/test_ruby.in
deleted file mode 100644
index 71d21eb..0000000
--- a/src/testdir/test_ruby.in
+++ /dev/null
@@ -1,25 +0,0 @@
-Tests for ruby interface.     vim: set ft=vim :
-
-STARTTEST
-:so small.vim
-:set nocompatible viminfo+=nviminfo
-:if !has('ruby') | e! test.ok | wq! test.out | endif
-:" change buffer contents
-:ruby VIM.command("normal /^1\n")
-:ruby $curbuf.line = "1 changed line 1"
-:" evaluate a List
-:ruby VIM.command("normal /^2\n")
-:let l = ["abc", "def"]
-:ruby << EOF
-curline = $curbuf.line_number
-l = VIM.evaluate("l");
-$curbuf.append(curline, l.join("\n"))
-EOF
-:normal j
-:.rubydo $_ = $_.gsub(/\n/, '/')
-:?^1?,$w! test.out
-:qa!
-ENDTEST
-
-1 line 1
-2 line 2
diff --git a/src/testdir/test_ruby.ok b/src/testdir/test_ruby.ok
deleted file mode 100644
index a217efd..0000000
--- a/src/testdir/test_ruby.ok
+++ /dev/null
@@ -1,3 +0,0 @@
-1 changed line 1
-2 line 2
-abc/def
diff --git a/src/testdir/test_ruby.vim b/src/testdir/test_ruby.vim
new file mode 100644
index 0000000..106ccb4
--- /dev/null
+++ b/src/testdir/test_ruby.vim
@@ -0,0 +1,34 @@
+" Tests for ruby interface
+
+if !has('ruby')
+  finish
+end
+
+func Test_ruby_change_buffer()
+  call setline(line('$'), ['1 line 1'])
+  ruby Vim.command("normal /^1\n")
+  ruby $curbuf.line = "1 changed line 1"
+  call assert_equal('1 changed line 1', getline('$'))
+endfunc
+
+func Test_ruby_evaluate_list()
+  call setline(line('$'), ['2 line 2'])
+  ruby Vim.command("normal /^2\n")
+  let l = ["abc", "def"]
+  ruby << EOF
+  curline = $curbuf.line_number
+  l = Vim.evaluate("l");
+  $curbuf.append(curline, l.join("\n"))
+EOF
+  normal j
+  .rubydo $_ = $_.gsub(/\n/, '/')
+  call assert_equal('abc/def', getline('$'))
+endfunc
+
+func Test_ruby_evaluate_dict()
+  let d = {'a': 'foo', 'b': 123}
+  redir => l:out
+  ruby d = Vim.evaluate("d"); print d
+  redir END
+  call assert_equal(['{"a"=>"foo", "b"=>123}'], split(l:out, "\n"))
+endfunc
diff --git a/src/version.c b/src/version.c
index c74b155..3e0fc90 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1951,
+/**/
     1950,
 /**/
     1949,