xref: /vim-8.2.3635/src/testdir/test_ruby.vim (revision 85babd6d)
1*85babd6dSBram Moolenaar" Tests for ruby interface
2*85babd6dSBram Moolenaar
3*85babd6dSBram Moolenaarif !has('ruby')
4*85babd6dSBram Moolenaar  finish
5*85babd6dSBram Moolenaarend
6*85babd6dSBram Moolenaar
7*85babd6dSBram Moolenaarfunc Test_ruby_change_buffer()
8*85babd6dSBram Moolenaar  call setline(line('$'), ['1 line 1'])
9*85babd6dSBram Moolenaar  ruby Vim.command("normal /^1\n")
10*85babd6dSBram Moolenaar  ruby $curbuf.line = "1 changed line 1"
11*85babd6dSBram Moolenaar  call assert_equal('1 changed line 1', getline('$'))
12*85babd6dSBram Moolenaarendfunc
13*85babd6dSBram Moolenaar
14*85babd6dSBram Moolenaarfunc Test_ruby_evaluate_list()
15*85babd6dSBram Moolenaar  call setline(line('$'), ['2 line 2'])
16*85babd6dSBram Moolenaar  ruby Vim.command("normal /^2\n")
17*85babd6dSBram Moolenaar  let l = ["abc", "def"]
18*85babd6dSBram Moolenaar  ruby << EOF
19*85babd6dSBram Moolenaar  curline = $curbuf.line_number
20*85babd6dSBram Moolenaar  l = Vim.evaluate("l");
21*85babd6dSBram Moolenaar  $curbuf.append(curline, l.join("\n"))
22*85babd6dSBram MoolenaarEOF
23*85babd6dSBram Moolenaar  normal j
24*85babd6dSBram Moolenaar  .rubydo $_ = $_.gsub(/\n/, '/')
25*85babd6dSBram Moolenaar  call assert_equal('abc/def', getline('$'))
26*85babd6dSBram Moolenaarendfunc
27*85babd6dSBram Moolenaar
28*85babd6dSBram Moolenaarfunc Test_ruby_evaluate_dict()
29*85babd6dSBram Moolenaar  let d = {'a': 'foo', 'b': 123}
30*85babd6dSBram Moolenaar  redir => l:out
31*85babd6dSBram Moolenaar  ruby d = Vim.evaluate("d"); print d
32*85babd6dSBram Moolenaar  redir END
33*85babd6dSBram Moolenaar  call assert_equal(['{"a"=>"foo", "b"=>123}'], split(l:out, "\n"))
34*85babd6dSBram Moolenaarendfunc
35