diff options
author | Alex Genco <alexgenco@gmail.com> | 2020-10-17 07:36:36 -0700 |
---|---|---|
committer | Alex Genco <alexgenco@gmail.com> | 2020-10-21 10:20:21 -0700 |
commit | ed0a70087a15621e7f45567feef1900f348c0916 (patch) | |
tree | e7dc4120ae450b81b0796e62d7ac28c253005e96 /test/functional/provider/ruby_spec.lua | |
parent | 0f590ae2a8bcebcb1398cb30997bd718d6f466e5 (diff) | |
download | rneovim-ed0a70087a15621e7f45567feef1900f348c0916.tar.gz rneovim-ed0a70087a15621e7f45567feef1900f348c0916.tar.bz2 rneovim-ed0a70087a15621e7f45567feef1900f348c0916.zip |
vim-patch:8.1.1056: no eval function for Ruby
Problem: No eval function for Ruby.
Solution: Add rubyeval(). (Ozaki Kiichi, closes vim/vim#4152)
https://github.com/vim/vim/commit/e99be0e6d28fad96efd2b2be23fa38e7559e80e1
Diffstat (limited to 'test/functional/provider/ruby_spec.lua')
-rw-r--r-- | test/functional/provider/ruby_spec.lua | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/functional/provider/ruby_spec.lua b/test/functional/provider/ruby_spec.lua index bb7d23ede6..2729d8dfa2 100644 --- a/test/functional/provider/ruby_spec.lua +++ b/test/functional/provider/ruby_spec.lua @@ -5,6 +5,7 @@ local command = helpers.command local curbufmeths = helpers.curbufmeths local eq = helpers.eq local eval = helpers.eval +local exc_exec = helpers.exc_exec local expect = helpers.expect local feed = helpers.feed local feed_command = helpers.feed_command @@ -109,3 +110,24 @@ describe('ruby provider', function() eq(2, eval('1+1')) -- Still alive? end) end) + +describe('rubyeval()', function() + it('evaluates ruby objects', function() + eq({1, 2, {['key'] = 'val'}}, funcs.rubyeval('[1, 2, {key: "val"}]')) + end) + + it('returns nil for empty strings', function() + eq(helpers.NIL, funcs.rubyeval('')) + end) + + it('errors out when given non-string', function() + eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(10)')) + eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(v:_null_dict)')) + eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(v:_null_list)')) + eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(0.0)')) + eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(function("tr"))')) + eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(v:true)')) + eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(v:false)')) + eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(v:null)')) + end) +end) |