neovim 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +3 -1
  3. data/.rubocop.yml +118 -0
  4. data/.travis.yml +1 -1
  5. data/CHANGELOG.md +5 -0
  6. data/Rakefile +29 -16
  7. data/VimFlavor +1 -0
  8. data/appveyor.yml +2 -0
  9. data/lib/neovim/api.rb +2 -1
  10. data/lib/neovim/buffer.rb +7 -15
  11. data/lib/neovim/client.rb +3 -3
  12. data/lib/neovim/connection.rb +6 -7
  13. data/lib/neovim/event_loop.rb +3 -3
  14. data/lib/neovim/executable.rb +1 -0
  15. data/lib/neovim/host.rb +12 -12
  16. data/lib/neovim/line_range.rb +16 -16
  17. data/lib/neovim/logging.rb +14 -14
  18. data/lib/neovim/message.rb +7 -7
  19. data/lib/neovim/plugin/dsl.rb +4 -4
  20. data/lib/neovim/plugin/handler.rb +3 -3
  21. data/lib/neovim/remote_object.rb +3 -3
  22. data/lib/neovim/ruby_provider.rb +11 -15
  23. data/lib/neovim/ruby_provider/buffer_ext.rb +1 -0
  24. data/lib/neovim/ruby_provider/vim.rb +14 -2
  25. data/lib/neovim/ruby_provider/window_ext.rb +1 -0
  26. data/lib/neovim/session.rb +7 -10
  27. data/lib/neovim/version.rb +1 -1
  28. data/lib/neovim/window.rb +3 -3
  29. data/neovim.gemspec +5 -4
  30. data/script/{dump_api → dump_api.rb} +0 -0
  31. data/script/{generate_docs → generate_docs.rb} +0 -0
  32. data/script/{j2mp → j2mp.rb} +0 -0
  33. data/script/{mp2j → mp2j.rb} +0 -0
  34. data/script/run_acceptance.rb +35 -0
  35. data/script/validate_docs.rb +29 -0
  36. data/spec/acceptance/rplugin_autocmd_spec.vim +20 -10
  37. data/spec/acceptance/rplugin_command_spec.vim +54 -56
  38. data/spec/acceptance/rplugin_function_spec.vim +28 -22
  39. data/spec/acceptance/ruby_spec.vim +40 -48
  40. data/spec/acceptance/rubydo_spec.vim +40 -52
  41. data/spec/acceptance/rubyfile/nested.rb +1 -1
  42. data/spec/acceptance/rubyfile_spec.vim +57 -63
  43. data/spec/acceptance/runtime/init.vim +4 -3
  44. data/spec/acceptance/runtime/rplugin/ruby/autocmds.rb +6 -2
  45. data/spec/acceptance/runtime/rplugin/ruby/commands.rb +17 -16
  46. data/spec/acceptance/runtime/rplugin/ruby/functions.rb +8 -8
  47. data/spec/helper.rb +2 -2
  48. data/spec/neovim/api_spec.rb +1 -1
  49. data/spec/neovim/client_spec.rb +10 -10
  50. data/spec/neovim/connection_spec.rb +5 -6
  51. data/spec/neovim/current_spec.rb +12 -12
  52. data/spec/neovim/executable_spec.rb +2 -2
  53. data/spec/neovim/host/loader_spec.rb +2 -2
  54. data/spec/neovim/host_spec.rb +7 -7
  55. data/spec/neovim/line_range_spec.rb +16 -16
  56. data/spec/neovim/logging_spec.rb +7 -7
  57. data/spec/neovim/plugin_spec.rb +6 -6
  58. data/spec/neovim/ruby_provider/buffer_ext_spec.rb +2 -2
  59. data/spec/neovim/ruby_provider/vim_spec.rb +4 -4
  60. data/spec/neovim/ruby_provider/window_ext_spec.rb +8 -8
  61. data/spec/neovim/session_spec.rb +8 -8
  62. data/spec/neovim/window_spec.rb +0 -1
  63. metadata +41 -27
  64. data/.gitmodules +0 -3
  65. data/.rspec +0 -1
  66. data/spec/acceptance/runtime/vader.vim/autoload/vader.vim +0 -348
  67. data/spec/acceptance/runtime/vader.vim/autoload/vader/assert.vim +0 -116
  68. data/spec/acceptance/runtime/vader.vim/autoload/vader/helper.vim +0 -43
  69. data/spec/acceptance/runtime/vader.vim/autoload/vader/parser.vim +0 -179
  70. data/spec/acceptance/runtime/vader.vim/autoload/vader/syntax.vim +0 -73
  71. data/spec/acceptance/runtime/vader.vim/autoload/vader/window.vim +0 -205
  72. data/spec/acceptance/runtime/vader.vim/plugin/vader.vim +0 -37
  73. data/spec/acceptance_spec.rb +0 -85
@@ -1,75 +1,63 @@
1
- Given:
2
- one
3
- two
4
- three
5
- four
1
+ let s:suite = themis#suite(":rubydo")
2
+ let s:expect = themis#helper("expect")
6
3
 
7
- Execute (Update one line using `$_`):
4
+ function! s:suite.before_each() abort
5
+ 1,$delete
6
+ call append(0, ["one", "two", "three", "four"])
7
+ endfunction
8
+
9
+ function! s:suite.has_nvim() abort
10
+ call s:expect(has("nvim")).to_equal(1)
11
+ endfunction
12
+
13
+ function! s:suite.updates_one_line() abort
8
14
  2rubydo $_.upcase!
9
15
 
10
- Expect:
11
- one
12
- TWO
13
- three
14
- four
16
+ call s:expect(getline(1, 4)).to_equal(["one", "TWO", "three", "four"])
17
+ endfunction
15
18
 
16
- Execute (Update a range of lines using `$_`):
19
+ function! s:suite.updates_line_range() abort
17
20
  2,3rubydo $_.upcase!
18
21
 
19
- Expect:
20
- one
21
- TWO
22
- THREE
23
- four
22
+ call s:expect(getline(1, 4)).to_equal(["one", "TWO", "THREE", "four"])
23
+ endfunction
24
+
25
+ function! s:suite.updates_large_line_range() abort
26
+ 1,$delete
27
+
28
+ for _ in range(0, 6000)
29
+ call append(0, "x")
30
+ endfor
31
+
32
+ %rubydo $_.succ!
33
+
34
+ call s:expect(getline(1)).to_equal("y")
35
+ call s:expect(getline(6001)).to_equal("y")
36
+ call s:expect(getline(6002)).to_equal("")
37
+ endfunction
24
38
 
25
- Execute (Update all lines using `$_`):
39
+ function! s:suite.updates_all_lines() abort
26
40
  %rubydo $_.upcase!
27
41
 
28
- Expect:
29
- ONE
30
- TWO
31
- THREE
32
- FOUR
42
+ call s:expect(getline(1, 4)).to_equal(["ONE", "TWO", "THREE", "FOUR"])
43
+ endfunction
33
44
 
34
- Execute (Raise a Ruby standard error):
45
+ function! s:suite.handles_standard_error() abort
35
46
  try
36
47
  1rubydo raise "BOOM"
37
48
  throw "Nothing raised"
38
49
  catch /BOOM/
39
50
  endtry
40
51
 
41
- 1rubydo $_.replace("still works")
52
+ call s:suite.updates_one_line()
53
+ endfunction
42
54
 
43
- Expect:
44
- still works
45
- two
46
- three
47
- four
48
-
49
- Execute (Raise a Ruby syntax error):
55
+ function! s:suite.handles_syntax_error() abort
50
56
  try
51
57
  1rubydo puts[
52
58
  throw "Nothing raised"
53
59
  catch /SyntaxError/
54
60
  endtry
55
61
 
56
- 1rubydo $_.replace("still works")
57
-
58
- Expect:
59
- still works
60
- two
61
- three
62
- four
63
-
64
- Given:
65
- x
66
-
67
- Execute (Add a large number of lines):
68
- 1yank
69
- silent normal 6000p
70
- %rubydo $_.succ!
71
-
72
- Then:
73
- AssertEqual "y", getline(1)
74
- AssertEqual "y", getline(6001)
75
- AssertEqual "", getline(6002)
62
+ call s:suite.updates_one_line()
63
+ endfunction
@@ -1 +1 @@
1
- Vim.command("rubyfile ./rubyfile/nested_inner.rb")
1
+ Vim.command("rubyfile ./nested_inner.rb")
@@ -1,46 +1,50 @@
1
- Execute (Set nvim_version):
2
- if has('nvim')
3
- let g:nvim_version = api_info()['version']
4
- else
5
- let g:nvim_version = {'major': 99, 'minor': 99, 'patch': 99}
6
- endif
1
+ let s:suite = themis#suite(":rubyfile")
2
+ let s:expect = themis#helper("expect")
7
3
 
8
- Given:
9
- one
10
- two
4
+ function! s:suite.before() abort
5
+ let g:return_pwd = getcwd()
6
+ cd spec/acceptance/rubyfile
7
+ endfunction
11
8
 
12
- Execute (Define a Ruby method):
13
- rubyfile ./rubyfile/define_foo.rb
9
+ function! s:suite.after() abort
10
+ execute("cd " . g:return_pwd)
11
+ endfunction
14
12
 
15
- Execute (Call a Ruby method):
16
- rubyfile ./rubyfile/call_foo.rb
13
+ function! s:suite.before_each() abort
14
+ 1,$delete
15
+ call append(0, ["one", "two"])
16
+ endfunction
17
17
 
18
- Then:
19
- AssertEqual 1, g:called
18
+ function! s:suite.has_nvim() abort
19
+ call s:expect(has("nvim")).to_equal(1)
20
+ endfunction
20
21
 
21
- Execute (Update instance state on $curbuf):
22
- rubyfile ./rubyfile/curbuf_ivar_set.rb
22
+ function! s:suite.defines_a_ruby_method() abort
23
+ rubyfile ./define_foo.rb
24
+ rubyfile ./call_foo.rb
23
25
 
24
- Execute (Access instance state on $curbuf):
25
- rubyfile ./rubyfile/curbuf_ivar_get.rb
26
+ call s:expect(g:called).to_equal(1)
27
+ endfunction
26
28
 
27
- Then:
28
- AssertEqual 123, g:foo
29
+ function! s:suite.persists_curbuf_state() abort
30
+ rubyfile ./curbuf_ivar_set.rb
31
+ rubyfile ./curbuf_ivar_get.rb
29
32
 
30
- Execute (Change the working directory explicitly):
31
- let g:rubyfile = getcwd() . "/rubyfile/set_pwd_before.rb"
33
+ call s:expect(g:foo).to_equal(123)
34
+ endfunction
35
+
36
+ function! s:suite.updates_working_directory() abort
37
+ let g:rubyfile = getcwd() . "/set_pwd_before.rb"
32
38
  cd /
33
39
  exec "rubyfile " . g:rubyfile
34
40
  cd -
35
41
 
36
- Then:
37
- if g:nvim_version['major'] > 0 || g:nvim_version['minor'] >= 2
38
- AssertEqual "/", g:pwd_before
39
- endif
42
+ call s:expect(g:pwd_before).to_equal("/")
43
+ endfunction
40
44
 
41
- Execute (Change the working directory implicitly):
42
- let g:before_file = getcwd() . "/rubyfile/set_pwd_before.rb"
43
- let g:after_file = getcwd() . "/rubyfile/set_pwd_after.rb"
45
+ function! s:suite.updates_working_directory_implicitly() abort
46
+ let g:before_file = getcwd() . "/set_pwd_before.rb"
47
+ let g:after_file = getcwd() . "/set_pwd_after.rb"
44
48
 
45
49
  split | lcd /
46
50
  exec "rubyfile " . g:before_file
@@ -48,55 +52,45 @@ Execute (Change the working directory implicitly):
48
52
  exec "rubyfile " . g:after_file
49
53
  wincmd p | lcd -
50
54
 
51
- Then:
52
- if g:nvim_version['major'] > 0 || g:nvim_version['minor'] >= 2
53
- AssertNotEqual g:pwd_before, g:pwd_after
54
- endif
55
+ call s:expect(g:pwd_before).not.to_equal(g:pwd_after)
56
+ endfunction
55
57
 
56
- Execute (Run nested Ruby files):
57
- rubyfile ./rubyfile/nested.rb
58
+ function! s:suite.supports_nesting() abort
59
+ rubyfile ./nested.rb
58
60
 
59
- Then:
60
- AssertEqual 123, g:ruby_nested
61
+ call s:expect(g:ruby_nested).to_equal(123)
62
+ endfunction
61
63
 
62
- Execute (Raise a Ruby load error):
64
+ function! s:suite.handles_standard_error() abort
63
65
  try
64
- rubyfile /foo/bar/baz
66
+ rubyfile ./raise_standard_error.rb
65
67
  throw "Nothing raised"
66
- catch /LoadError/
68
+ catch /BOOM/
67
69
  endtry
68
70
 
69
- ruby $curbuf[1] = "still works"
70
-
71
- Expect:
72
- still works
73
- two
71
+ call s:suite.defines_a_ruby_method()
72
+ endfunction
74
73
 
75
- Execute (Raise a Ruby standard error):
74
+ function! s:suite.handles_load_error() abort
76
75
  try
77
- rubyfile ./rubyfile/raise_standard_error.rb
76
+ rubyfile /foo/bar/baz
78
77
  throw "Nothing raised"
79
- catch /BOOM/
78
+ catch /LoadError/
80
79
  endtry
81
80
 
82
- ruby $curbuf[1] = "still works"
81
+ call s:suite.defines_a_ruby_method()
82
+ endfunction
83
83
 
84
- Expect:
85
- still works
86
- two
87
-
88
- Execute (Raise a Ruby syntax error):
84
+ function! s:suite.handles_syntax_error() abort
89
85
  try
90
- rubyfile ./rubyfile/raise_syntax_error.rb
86
+ rubyfile ./raise_syntax_error.rb
91
87
  throw "Nothing raised"
92
88
  catch /SyntaxError/
93
89
  endtry
94
90
 
95
- ruby $curbuf[1] = "still works"
96
-
97
- Expect:
98
- still works
99
- two
91
+ call s:suite.defines_a_ruby_method()
92
+ endfunction
100
93
 
101
- Execute (Access ruby interface):
102
- rubyfile ./rubyfile/ruby_interface.rb
94
+ function! s:suite.exposes_constants() abort
95
+ rubyfile ./ruby_interface.rb
96
+ endfunction
@@ -1,8 +1,9 @@
1
- let s:lib_path = fnamemodify(getcwd() . "/../../lib", ":p")
2
- let s:bin_path = fnamemodify(getcwd() . "/../../bin/neovim-ruby-host", ":p")
1
+ let s:lib_path = getcwd() . "/lib"
2
+ let s:bin_path = getcwd() . "/bin/neovim-ruby-host"
3
+ let g:acceptance_rtp = getcwd() . "/spec/acceptance/runtime"
3
4
  let g:ruby_host_prog = printf("ruby -I %s %s", s:lib_path, s:bin_path)
4
5
 
5
6
  ruby require "rspec/expectations"
6
7
  ruby include ::RSpec::Matchers.dup
7
8
 
8
- set rtp=./runtime,./runtime/vader.vim,$VIMRUNTIME
9
+ set rtp=./spec/acceptance/runtime,$VIMRUNTIME
@@ -1,9 +1,13 @@
1
1
  Neovim.plugin do |plug|
2
- plug.autocmd(:BufEnter, pattern: "*.rb") do |nvim|
2
+ plug.autocmd(:BufEnter, pattern: "*.rb", sync: true) do |nvim|
3
3
  nvim.get_current_buf.set_var("rplugin_autocmd_BufEnter", true)
4
4
  end
5
5
 
6
- plug.autocmd(:BufEnter, pattern: "*.c", eval: "g:to_eval") do |nvim, to_eval|
6
+ plug.autocmd(:BufEnter, pattern: "*.c", eval: "g:to_eval", sync: true) do |nvim, to_eval|
7
7
  nvim.set_var("rplugin_autocmd_BufEnter_eval", to_eval.merge(b: 43))
8
8
  end
9
+
10
+ plug.autocmd(:BufEnter, pattern: "*.async") do |nvim, to_eval|
11
+ nvim.set_var("rplugin_autocmd_BufEnter_async", true)
12
+ end
9
13
  end
@@ -1,63 +1,64 @@
1
1
  Neovim.plugin do |plug|
2
- plug.command(:RPluginCommandNargs0) do |nvim|
2
+ plug.command(:RPluginCommandNargs0, sync: true) do |nvim|
3
3
  nvim.set_var("rplugin_command_nargs_0", true)
4
4
  end
5
5
 
6
- plug.command(:RPluginCommandNargs1, nargs: 1) do |nvim, arg|
6
+ plug.command(:RPluginCommandNargs1, nargs: 1, sync: true) do |nvim, arg|
7
7
  nvim.set_var("rplugin_command_nargs_1", arg)
8
8
  end
9
9
 
10
- plug.command(:RPluginCommandNargsN, nargs: "*") do |nvim, *args|
10
+ plug.command(:RPluginCommandNargsN, nargs: "*", sync: true) do |nvim, *args|
11
11
  nvim.set_var("rplugin_command_nargs_n", args)
12
12
  end
13
13
 
14
- plug.command(:RPluginCommandNargsQ, nargs: "?") do |nvim, arg|
14
+ plug.command(:RPluginCommandNargsQ, nargs: "?", sync: true) do |nvim, arg|
15
15
  nvim.set_var("rplugin_command_nargs_q", arg)
16
16
  end
17
17
 
18
- plug.command(:RPluginCommandNargsP, nargs: "+") do |nvim, *args|
18
+ plug.command(:RPluginCommandNargsP, nargs: "+", sync: true) do |nvim, *args|
19
19
  nvim.set_var("rplugin_command_nargs_p", args)
20
20
  end
21
21
 
22
- plug.command(:RPluginCommandRange, range: true) do |nvim, *range|
22
+ plug.command(:RPluginCommandRange, range: true, sync: true) do |nvim, *range|
23
23
  nvim.set_var("rplugin_command_range", range)
24
24
  end
25
25
 
26
- plug.command(:RPluginCommandRangeP, range: "%") do |nvim, *range|
26
+ plug.command(:RPluginCommandRangeP, range: "%", sync: true) do |nvim, *range|
27
27
  nvim.set_var("rplugin_command_range_p", range)
28
28
  end
29
29
 
30
- plug.command(:RPluginCommandRangeN, range: 1) do |nvim, *range|
30
+ plug.command(:RPluginCommandRangeN, range: 1, sync: true) do |nvim, *range|
31
31
  nvim.set_var("rplugin_command_range_n", range)
32
32
  end
33
33
 
34
- plug.command(:RPluginCommandCountN, count: 1) do |nvim, *count|
34
+ plug.command(:RPluginCommandCountN, count: 1, sync: true) do |nvim, *count|
35
35
  nvim.set_var("rplugin_command_count_n", count)
36
36
  end
37
37
 
38
- plug.command(:RPluginCommandBang, bang: true) do |nvim, bang|
38
+ plug.command(:RPluginCommandBang, bang: true, sync: true) do |nvim, bang|
39
39
  nvim.set_var("rplugin_command_bang", bang)
40
40
  end
41
41
 
42
- plug.command(:RPluginCommandRegister, register: true) do |nvim, reg|
42
+ plug.command(:RPluginCommandRegister, register: true, sync: true) do |nvim, reg|
43
43
  nvim.set_var("rplugin_command_register", reg)
44
44
  end
45
45
 
46
- plug.command(:RPluginCommandCompletion, complete: "buffer") do |nvim|
46
+ plug.command(:RPluginCommandCompletion, complete: "buffer", sync: true) do |nvim|
47
47
  attrs = nvim.command_output("silent command RPluginCommandCompletion")
48
48
  compl = attrs.split($/).last.split[2]
49
49
  nvim.set_var("rplugin_command_completion", compl)
50
50
  end
51
51
 
52
- plug.command(:RPluginCommandEval, eval: "g:to_eval") do |nvim, to_eval|
52
+ plug.command(:RPluginCommandEval, eval: "g:to_eval", sync: true) do |nvim, to_eval|
53
53
  nvim.set_var("rplugin_command_eval", to_eval.merge(b: 43))
54
+ to_eval.merge(b: 43)
54
55
  end
55
56
 
56
- plug.command(:RPluginCommandSync, sync: true) do |nvim|
57
- nvim.set_var("rplugin_command_sync", true)
57
+ plug.command(:RPluginCommandAsync) do |nvim|
58
+ nvim.set_var("rplugin_command_async", true)
58
59
  end
59
60
 
60
- plug.command(:RPluginCommandRecursive, sync: true, nargs: 1) do |nvim, n|
61
+ plug.command(:RPluginCommandRecursive, nargs: 1, sync: true) do |nvim, n|
61
62
  if Integer(n) >= 10
62
63
  nvim.set_var("rplugin_command_recursive", n)
63
64
  else
@@ -1,18 +1,18 @@
1
1
  Neovim.plugin do |plug|
2
- plug.function(:RPluginFunctionArgs) do |nvim, *args|
3
- nvim.set_var("rplugin_function_args", args)
2
+ plug.function(:RPluginFunctionArgs, sync: true) do |nvim, *args|
3
+ args
4
4
  end
5
5
 
6
- plug.function(:RPluginFunctionRange, range: true) do |nvim, *range|
7
- nvim.set_var("rplugin_function_range", range)
6
+ plug.function(:RPluginFunctionRange, range: true, sync: true) do |nvim, start, stop|
7
+ nvim.set_var("rplugin_function_range", [start, stop])
8
8
  end
9
9
 
10
- plug.function(:RPluginFunctionEval, eval: "g:to_eval") do |nvim, to_eval|
11
- nvim.set_var("rplugin_function_eval", to_eval.merge(b: 43))
10
+ plug.function(:RPluginFunctionEval, eval: "g:to_eval", sync: true) do |nvim, to_eval|
11
+ to_eval.merge(b: 43)
12
12
  end
13
13
 
14
- plug.function(:RPluginFunctionSync, sync: true) do |nvim|
15
- true
14
+ plug.function(:RPluginFunctionAsync) do |nvim|
15
+ nvim.set_var("rplugin_function_async", true)
16
16
  end
17
17
 
18
18
  plug.function(:RPluginFunctionRecursive, sync: true, nargs: 1) do |nvim, n|
@@ -6,13 +6,13 @@ if ENV["REPORT_COVERAGE"]
6
6
  end
7
7
 
8
8
  require "fileutils"
9
+ require "msgpack"
9
10
  require "neovim"
10
11
  require "pry"
11
12
  require "rubygems"
13
+ require "securerandom"
12
14
  require "stringio"
13
15
  require "timeout"
14
- require "securerandom"
15
- require "msgpack"
16
16
 
17
17
  require File.expand_path("../support.rb", __FILE__)
18
18
 
@@ -13,7 +13,7 @@ module Neovim
13
13
  {"name" => "nvim_func"},
14
14
  {"name" => "nvim_buf_func"},
15
15
  {"name" => "nvim_win_func"},
16
- {"name" => "nvim_tabpage_func"},
16
+ {"name" => "nvim_tabpage_func"}
17
17
  ]
18
18
  }
19
19
  ]
@@ -7,21 +7,21 @@ module Neovim
7
7
 
8
8
  describe "#set_option" do
9
9
  it "sets an option from two arguments" do
10
- expect {
10
+ expect do
11
11
  client.set_option("makeprg", "rake")
12
- }.to change { client.evaluate("&makeprg") }.to("rake")
12
+ end.to change { client.evaluate("&makeprg") }.to("rake")
13
13
  end
14
14
 
15
15
  it "sets an option from a string" do
16
- expect {
16
+ expect do
17
17
  client.set_option("timeoutlen=0")
18
- }.to change { client.evaluate("&timeoutlen") }.to(0)
18
+ end.to change { client.evaluate("&timeoutlen") }.to(0)
19
19
  end
20
20
 
21
21
  it "sets a boolean option" do
22
- expect {
22
+ expect do
23
23
  client.set_option("expandtab")
24
- }.to change { client.evaluate("&expandtab") }.to(1)
24
+ end.to change { client.evaluate("&expandtab") }.to(1)
25
25
  end
26
26
  end
27
27
 
@@ -45,15 +45,15 @@ module Neovim
45
45
  end
46
46
 
47
47
  it "raises exceptions for unknown methods" do
48
- expect {
48
+ expect do
49
49
  client.foobar
50
- }.to raise_error(NoMethodError)
50
+ end.to raise_error(NoMethodError)
51
51
  end
52
52
 
53
53
  it "raises exceptions for incorrect usage" do
54
- expect {
54
+ expect do
55
55
  client.strwidth("too", "many")
56
- }.to raise_error("Wrong number of arguments: expecting 1 but got 2")
56
+ end.to raise_error("Wrong number of arguments: expecting 1 but got 2")
57
57
  end
58
58
  end
59
59