neovim 0.0.2 → 0.0.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ff45b0d6aaf7cab8f5c5092d9865c05d08d65dd4
4
- data.tar.gz: 37296e52f00a0f027edb8035c7d35e869782cf65
3
+ metadata.gz: 39cfc5e3df7a8ab166fc8b036f9bb73dee269d39
4
+ data.tar.gz: 2ffff11255346e889b896afb1ec90444553c0472
5
5
  SHA512:
6
- metadata.gz: d09d6c4f10345ebaa35d9d1e3eef431dab85d827c7a4045bcbbce56437b03a0598e5c4b683051b3fd992ccd902deb820500ee1101b7de0fddd2e3738daeede7a
7
- data.tar.gz: bc3e6b3734c26b344a88b38fae3c12063fe5e3418c0e23142b226f8c1da6f7a0dee93526a3a77400208a915264365479a8597c8a02fa72416babdc44bc95b0a3
6
+ metadata.gz: 442348e1633ac14d7185fabb38be72f1df180893b87db118609e265e4f059b4153c1b08aec61b74b031d5a79ef8aa4e4db151316629ecf164931fdb9645ada89
7
+ data.tar.gz: b01ba2a5a77b93d8c59481d293602df43574b7724d0bda3fa384fa4ea2f23b2bab51a1aa8539173c2243d756990b6b831d54784d7c709756474974f3cb74d204
@@ -26,5 +26,5 @@ addons:
26
26
  - pkg-config
27
27
 
28
28
  env: REPORT_COVERAGE=1
29
- before_script: bundle exec rake neovim:install
29
+ before_script: travis_retry bundle exec rake neovim:install
30
30
  script: travis_retry bundle exec rake
@@ -1,3 +1,9 @@
1
+ # 0.0.3
2
+
3
+ - Add Buffer#lines enumerable interface
4
+ - Add Window#cursor interface
5
+ - Fix race condition when loading plugins from host
6
+
1
7
  # 0.0.2
2
8
 
3
9
  - Add Neovim.plugin DSL for defining plugins
data/Gemfile CHANGED
@@ -1,2 +1,8 @@
1
1
  source "https://rubygems.org"
2
2
  gemspec
3
+
4
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.0.0")
5
+ gem "pry-byebug"
6
+ else
7
+ gem "pry-debugger"
8
+ end
data/README.md CHANGED
@@ -37,7 +37,7 @@ require "neovim"
37
37
  client = Neovim.attach_unix("/tmp/nvim.sock")
38
38
  ```
39
39
 
40
- The interface of the client is generated at runtime from the `vim_get_api_info` RPC call. For now, you can refer to the Node client's auto-generated [API description](https://github.com/neovim/node-client/blob/master/index.d.ts). Note that methods will be in `snake_case` rather than `camelCase`.
40
+ The client's interface is generated at runtime from the `vim_get_api_info` RPC call. For now, you can refer to the Node client's auto-generated [API description](https://github.com/neovim/node-client/blob/master/index.d.ts). Note that methods will be in `snake_case` rather than `camelCase`.
41
41
 
42
42
  The `neovim-ruby-host` executable can be used to spawn Ruby plugins via the `rpcstart` command. A plugin can be defined like this:
43
43
 
@@ -60,16 +60,16 @@ Neovim.plugin do |plug|
60
60
  end
61
61
  ```
62
62
 
63
- In your `nvim`, you can start this plugin by running `let host = rpcstart("neovim-ruby-host", ["./my_plugin.rb"])`. You can use this channel id to communicate with the host, e.g.
63
+ You can start this plugin via the `rpcstart` nvim function. The resulting channel ID can be used to send requests and notifications to the plugin.
64
+
64
65
  ```viml
65
- let result = rpcrequest(host, "Add", 1, 2)
66
- let result " # => 3
66
+ let host = rpcstart("neovim-ruby-host", ["./my_plugin.rb"])
67
67
 
68
- call rpcnotify(host, "SetLine", "Foo")
69
- " Current line is set to "Foo"
68
+ let result = rpcrequest(host, "Add", 1, 2) " result is set to 3
69
+ call rpcnotify(host, "SetLine", "Foo") " current line is set to 'Foo'
70
70
  ```
71
71
 
72
- Plugin functionality is very limited right now. Besides `command`, the plugin DSL exposes the `function` and `autocmd` directives, however they are functionally identical to `command`. Their purpose is to define a manifest that nvim can load via the `UpdateRemotePlugins` command, which will generate the actual `command`, `function`, and `autocmd` definitions. This piece has not yet been implemented.
72
+ Plugin functionality is very limited right now. Besides `command`, the plugin DSL exposes the `function` and `autocmd` directives, however they are functionally almost identical to `command`. Their purpose is to define a manifest that nvim can load via the `UpdateRemotePlugins` command, which will generate the actual `command`, `function`, and `autocmd` definitions. This piece has not yet been implemented.
73
73
 
74
74
  ## Contributing
75
75
 
@@ -1,3 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
+
2
3
  require "neovim"
3
- Neovim.start_host(ARGV)
4
+
5
+ if $stdin.tty?
6
+ abort("Can't run neovim-ruby-host interactively.")
7
+ else
8
+ Neovim.start_host(ARGV)
9
+ end
@@ -27,7 +27,7 @@ module Neovim
27
27
 
28
28
  def self.plugin(&block)
29
29
  Plugin.from_config_block(&block).tap do |plugin|
30
- __configured_plugins << plugin
30
+ @__configured_plugins << plugin
31
31
  end
32
32
  end
33
33
 
@@ -0,0 +1,74 @@
1
+ require "neovim/object"
2
+
3
+ module Neovim
4
+ class Buffer < Neovim::Object
5
+ def lines
6
+ @lines ||= Lines.new(self)
7
+ end
8
+
9
+ def lines=(arr)
10
+ lines[0..-1] = arr
11
+ end
12
+
13
+ class Lines
14
+ include Enumerable
15
+
16
+ def initialize(buffer)
17
+ @buffer = buffer
18
+ end
19
+
20
+ def ==(other)
21
+ case other
22
+ when Array
23
+ to_a == other
24
+ else
25
+ super
26
+ end
27
+ end
28
+
29
+ def to_a
30
+ self[0..-1]
31
+ end
32
+
33
+ def each(&block)
34
+ to_a.each(&block)
35
+ end
36
+
37
+ def [](idx, len=nil)
38
+ case idx
39
+ when Range
40
+ @buffer.get_line_slice(idx.begin, idx.end, true, !idx.exclude_end?)
41
+ else
42
+ if len
43
+ @buffer.get_line_slice(idx, idx + len, true, false)
44
+ else
45
+ @buffer.get_line(idx)
46
+ end
47
+ end
48
+ end
49
+ alias_method :slice, :[]
50
+
51
+ def []=(*args)
52
+ *target, val = args
53
+ idx, len = target
54
+
55
+ case idx
56
+ when Range
57
+ @buffer.set_line_slice(
58
+ idx.begin,
59
+ idx.end,
60
+ true,
61
+ !idx.exclude_end?,
62
+ val
63
+ )
64
+ else
65
+ if len
66
+ @buffer.set_line_slice(idx, idx + len, true, false, val)
67
+ else
68
+ @buffer.set_line(idx, val)
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
@@ -2,6 +2,8 @@ require "neovim/current"
2
2
 
3
3
  module Neovim
4
4
  class Client
5
+ attr_reader :session
6
+
5
7
  def initialize(session)
6
8
  @session = session
7
9
  end
@@ -1,4 +1,6 @@
1
- require "neovim/object"
1
+ require "neovim/buffer"
2
+ require "neovim/tabpage"
3
+ require "neovim/window"
2
4
 
3
5
  module Neovim
4
6
  class Current
@@ -13,7 +13,7 @@ module Neovim
13
13
  end
14
14
 
15
15
  def self.child(argv)
16
- argv = [ENV.fetch("NVIM_EXECUTABLE", "nvim"), "--embed"] | argv.to_ary
16
+ argv = [ENV.fetch("NVIM_EXECUTABLE", "nvim"), "--embed"] | argv
17
17
  io = IO.popen(argv, "rb+")
18
18
  new(io, io)
19
19
  end
@@ -22,15 +22,12 @@ module Neovim
22
22
  def initialize(plugins)
23
23
  @plugins = plugins
24
24
  @handlers = compile_handlers(plugins)
25
+ @event_loop = EventLoop.stdio
26
+ @msgpack_stream = MsgpackStream.new(@event_loop)
27
+ @async_session = AsyncSession.new(@msgpack_stream)
25
28
  end
26
29
 
27
30
  def run
28
- event_loop = EventLoop.stdio
29
- msgpack_stream = MsgpackStream.new(event_loop)
30
- async_session = AsyncSession.new(msgpack_stream)
31
- session = Session.new(async_session)
32
- client = Client.new(session)
33
-
34
31
  notification_callback = Proc.new do |notif|
35
32
  @handlers[:notification][notif.method_name].call(client, notif)
36
33
  end
@@ -39,17 +36,35 @@ module Neovim
39
36
  @handlers[:request][request.method_name].call(client, request)
40
37
  end
41
38
 
42
- async_session.run(request_callback, notification_callback)
39
+ @async_session.run(request_callback, notification_callback)
43
40
  end
44
41
 
45
42
  private
46
43
 
44
+ def client
45
+ @client ||= Client.new(session)
46
+ end
47
+
48
+ def session
49
+ @session ||= Session.new(@async_session)
50
+ end
51
+
47
52
  def compile_handlers(plugins)
53
+ default_req_handler = Proc.new do |_, request|
54
+ request.error("Unknown request #{request.method_name.inspect}")
55
+ end
56
+
57
+ default_ntf_handler = Proc.new {}
58
+
48
59
  base = {
49
- :request => Hash.new(Proc.new {}),
50
- :notification => Hash.new(Proc.new {})
60
+ :request => Hash.new(default_req_handler),
61
+ :notification => Hash.new(default_ntf_handler)
51
62
  }
52
63
 
64
+ base[:request][:poll] = lambda do |_, request|
65
+ request.respond("ok")
66
+ end
67
+
53
68
  plugins.inject(base) do |handlers, plugin|
54
69
  plugin.specs.each do |spec|
55
70
  if spec[:sync]
@@ -37,8 +37,4 @@ module Neovim
37
37
  :"#{function_prefix}#{method_name}"
38
38
  end
39
39
  end
40
-
41
- Buffer = Class.new(Object)
42
- Tabpage = Class.new(Object)
43
- Window = Class.new(Object)
44
40
  end
@@ -6,8 +6,8 @@ module Neovim
6
6
 
7
7
  def initialize(async_session)
8
8
  @async_session = async_session
9
-
10
9
  @api_info = APIInfo.new(request(:vim_get_api_info))
10
+
11
11
  @async_session.register_session(self)
12
12
  end
13
13
 
@@ -0,0 +1,6 @@
1
+ require "neovim/object"
2
+
3
+ module Neovim
4
+ class Tabpage < Neovim::Object
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  module Neovim
2
- VERSION = Gem::Version.new("0.0.2")
2
+ VERSION = Gem::Version.new("0.0.3")
3
3
  end
@@ -0,0 +1,39 @@
1
+ require "neovim/object"
2
+
3
+ module Neovim
4
+ class Window < Neovim::Object
5
+ def cursor
6
+ @cursor ||= Cursor.new(self)
7
+ end
8
+
9
+ class Cursor
10
+ def initialize(window)
11
+ @window = window
12
+ end
13
+
14
+ def coordinates
15
+ @window.get_cursor
16
+ end
17
+
18
+ def coordinates=(coords)
19
+ @window.set_cursor(coords)
20
+ end
21
+
22
+ def line
23
+ coordinates[0]
24
+ end
25
+
26
+ def line=(n)
27
+ self.coordinates = [n, column]
28
+ end
29
+
30
+ def column
31
+ coordinates[1]
32
+ end
33
+
34
+ def column=(n)
35
+ self.coordinates = [line, n]
36
+ end
37
+ end
38
+ end
39
+ end
@@ -17,10 +17,11 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^spec/})
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.add_dependency "msgpack", "0.7.0dev1"
20
+ spec.add_dependency "msgpack", "~> 0.7"
21
21
 
22
22
  spec.add_development_dependency "bundler"
23
23
  spec.add_development_dependency "rake"
24
- spec.add_development_dependency "rspec", "~> 3.0"
25
- spec.add_development_dependency "coveralls", "~> 0.7.2"
24
+ spec.add_development_dependency "pry"
25
+ spec.add_development_dependency "coveralls"
26
+ spec.add_development_dependency "rspec", "~> 3.0"
26
27
  end
@@ -1,57 +1,58 @@
1
1
  require "helper"
2
- require "tempfile"
2
+ require "tmpdir"
3
3
 
4
4
  RSpec.describe "neovim-ruby-host" do
5
- let(:lib_path) { File.expand_path("../../../lib", __FILE__) }
6
- let(:bin_path) { File.expand_path("../../../bin/neovim-ruby-host", __FILE__) }
7
- let(:nvim_path) { File.expand_path("../../../vendor/neovim/build/bin/nvim", __FILE__) }
8
-
9
5
  specify do
10
- plugin1 = Tempfile.open("plug1") do |f|
11
- f.write(<<-RUBY)
12
- Neovim.plugin do |plug|
13
- plug.command(:SyncAdd, :args => 2, :sync => true) do |nvim, x, y|
14
- x + y
6
+ Dir.mktmpdir do |pwd|
7
+ Dir.chdir(pwd) do
8
+ File.write("./plugin1.rb", <<-RUBY)
9
+ Neovim.plugin do |plug|
10
+ plug.command(:SyncAdd, :args => 2, :sync => true) do |nvim, x, y|
11
+ x + y
12
+ end
15
13
  end
16
- end
17
- RUBY
18
- f.path
19
- end
14
+ RUBY
20
15
 
21
- plugin2 = Tempfile.open("plug2") do |f|
22
- f.write(<<-RUBY)
23
- Neovim.plugin do |plug|
24
- plug.command(:AsyncSetLine, :args => 1) do |nvim, str|
25
- nvim.current.line = str
16
+ File.write("./plugin2.rb", <<-RUBY)
17
+ Neovim.plugin do |plug|
18
+ plug.command(:AsyncSetLine, :args => 1) do |nvim, str|
19
+ nvim.current.line = str
20
+ end
26
21
  end
27
- end
28
- RUBY
29
- f.path
30
- end
22
+ RUBY
31
23
 
32
- output = Tempfile.new("output").tap(&:close).path
33
- host_nvim = Neovim.attach_child(["--headless", "-u", "NONE", "-N", "-n"])
24
+ nvim = Neovim.attach_child(["--headless", "-u", "NONE", "-N", "-n"])
34
25
 
35
- # Start the remote host
36
- host_nvim.command(%{let g:chan = rpcstart("#{bin_path}", ["#{plugin1}", "#{plugin2}"])})
37
- sleep 0.4 # TODO figure out if/why this is necessary
26
+ # Start the remote host
27
+ host_exe = File.expand_path("../../../bin/neovim-ruby-host", __FILE__)
28
+ nvim.command(%{let host = rpcstart("#{host_exe}", ["./plugin1.rb", "./plugin2.rb"])})
38
29
 
39
- # Make a request to the synchronous SyncAdd method and store the results
40
- host_nvim.command(%{let g:res = rpcrequest(g:chan, "SyncAdd", 1, 2)})
30
+ # Send a "poll" request
31
+ expect(nvim.eval(%{rpcrequest(host, "poll")})).to eq("ok")
41
32
 
42
- # Write the results to the buffer
43
- host_nvim.command("put =g:res")
44
- host_nvim.command("normal o")
33
+ # Make a request to the synchronous SyncAdd method and store the result
34
+ nvim.command(%{let result = rpcrequest(host, "SyncAdd", 1, 2)})
45
35
 
46
- # Set the current line content via the AsyncSetLine method
47
- host_nvim.command(%{call rpcnotify(g:chan, "AsyncSetLine", "foo")})
36
+ # Write the result to the buffer
37
+ nvim.command("put =result")
38
+ nvim.command("normal o")
48
39
 
49
- # Ensure notification callback has completed
50
- host_nvim.eval("0")
40
+ # Set the current line via the AsyncSetLine method
41
+ nvim.command(%{call rpcnotify(host, "AsyncSetLine", "foo")})
51
42
 
52
- # Save the contents of the buffer
53
- host_nvim.command("write! #{output}")
43
+ # Make an unknown notification
44
+ expect {
45
+ nvim.command(%{call rpcnotify(host, "Unknown")})
46
+ }.not_to raise_error
54
47
 
55
- expect(File.read(output)).to eq("\n3\nfoo\n")
48
+ # Make an unknown request
49
+ expect {
50
+ nvim.command(%{call rpcrequest(host, "Unknown")})
51
+ }.to raise_error(ArgumentError, /unknown request/i)
52
+
53
+ # Assert the contents of the buffer
54
+ expect(nvim.current.buffer.lines).to eq(["", "3", "foo"])
55
+ end
56
+ end
56
57
  end
57
58
  end
@@ -1,6 +1,6 @@
1
- require "rubygems"
2
1
  require "bundler/setup"
3
2
  require "neovim"
3
+ require "pry"
4
4
  require "timeout"
5
5
 
6
6
  if ENV["REPORT_COVERAGE"]
@@ -0,0 +1,59 @@
1
+ require "helper"
2
+
3
+ module Neovim
4
+ RSpec.describe Buffer do
5
+ let(:client) { Neovim.attach_child(["--headless", "-n", "-u", "NONE"]) }
6
+ let(:buffer) { client.current.buffer }
7
+
8
+ describe "#lines" do
9
+ before do
10
+ client.command("normal i1")
11
+ client.command("normal o2")
12
+ client.command("normal o3")
13
+ end
14
+
15
+ it "returns the buffer's lines as an array" do
16
+ expect(buffer.lines).to eq(["1", "2", "3"])
17
+ end
18
+
19
+ it "can be indexed into" do
20
+ expect(buffer.lines[1]).to eq("2")
21
+ end
22
+
23
+ it "can be sliced with a length" do
24
+ expect(buffer.lines[0, 2]).to eq(["1", "2"])
25
+ end
26
+
27
+ it "can be sliced with a range" do
28
+ expect(buffer.lines[0..1]).to eq(["1", "2"])
29
+ end
30
+
31
+ it "can be updated at an index" do
32
+ buffer.lines[0] = "foo"
33
+ expect(buffer.lines).to eq(["foo", "2", "3"])
34
+ end
35
+
36
+ it "can be updated with a length" do
37
+ buffer.lines[0, 2] = ["foo"]
38
+ expect(buffer.lines).to eq(["foo", "3"])
39
+ end
40
+
41
+ it "can be updated with a range" do
42
+ buffer.lines[0..1] = ["foo"]
43
+ expect(buffer.lines).to eq(["foo", "3"])
44
+ end
45
+
46
+ it "exposes the Enumerable interface" do
47
+ succ_lines = buffer.lines.collect(&:succ)
48
+ expect(succ_lines).to eq(["2", "3", "4"])
49
+ end
50
+ end
51
+
52
+ describe "#lines=" do
53
+ it "updates the buffers lines" do
54
+ buffer.lines = ["one", "two"]
55
+ expect(buffer.lines).to eq(["one", "two"])
56
+ end
57
+ end
58
+ end
59
+ end
@@ -40,8 +40,6 @@ module Neovim
40
40
  plug.command(:Async, :nargs => 2, &async_cb)
41
41
  end
42
42
 
43
- host = Host.new([plugin])
44
-
45
43
  mock_async_session = double(:async_session, :request => nil)
46
44
  expect(AsyncSession).to receive(:new) { mock_async_session }
47
45
 
@@ -73,6 +71,7 @@ module Neovim
73
71
  not_cb.call(mock_notification)
74
72
  end
75
73
 
74
+ host = Host.new([plugin])
76
75
  host.run
77
76
  end
78
77
  end
@@ -1,4 +1,7 @@
1
1
  require "helper"
2
+ require "neovim/buffer"
3
+ require "neovim/tabpage"
4
+ require "neovim/window"
2
5
 
3
6
  module Neovim
4
7
  RSpec.describe Object do
@@ -9,14 +9,18 @@ module Neovim
9
9
  Session.new(async)
10
10
  end
11
11
 
12
- it "exposes a synchronous API" do
13
- expect(session.request(:vim_strwidth, "foobar")).to eq(6)
12
+ it "supports functions with async=false" do
13
+ expect(session.request(:vim_strwidth, "foobar")).to be(6)
14
+ end
15
+
16
+ it "supports functions with async=true" do
17
+ expect(session.request(:vim_input, "jk")).to be(2)
14
18
  end
15
19
 
16
20
  it "raises an exception when there are errors" do
17
21
  expect {
18
22
  session.request(:vim_strwidth, "too", "many")
19
- }.to raise_error("Wrong number of arguments: expecting 1 but got 2")
23
+ }.to raise_error(/wrong number of arguments/i)
20
24
  end
21
25
 
22
26
  describe "#api_methods_for_prefix" do
@@ -0,0 +1,41 @@
1
+ require "helper"
2
+
3
+ module Neovim
4
+ RSpec.describe Window do
5
+ let(:client) { Neovim.attach_child(["--headless", "-n", "-u", "NONE"]) }
6
+ let(:window) { client.current.window }
7
+
8
+ before do
9
+ client.command("normal 3Oabc")
10
+ client.command("normal gg")
11
+ end
12
+
13
+ describe "#cursor" do
14
+ it "moves line-wise" do
15
+ expect {
16
+ window.cursor.line += 1
17
+ }.to change { window.cursor.coordinates }.from([1, 0]).to([2, 0])
18
+
19
+ expect {
20
+ window.cursor.line -= 1
21
+ }.to change { window.cursor.coordinates }.from([2, 0]).to([1, 0])
22
+ end
23
+
24
+ it "moves column-wise" do
25
+ expect {
26
+ window.cursor.column += 1
27
+ }.to change { window.cursor.coordinates }.from([1, 0]).to([1, 1])
28
+
29
+ expect {
30
+ window.cursor.column -= 1
31
+ }.to change { window.cursor.coordinates }.from([1, 1]).to([1, 0])
32
+ end
33
+
34
+ it "moves to an absolute position" do
35
+ expect {
36
+ window.cursor.coordinates = [1, 1]
37
+ }.to change { window.cursor.coordinates }.to([1, 1])
38
+ end
39
+ end
40
+ end
41
+ end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neovim
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Genco
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-08 00:00:00.000000000 Z
11
+ date: 2015-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.7.0dev1
19
+ version: '0.7'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '='
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.7.0dev1
26
+ version: '0.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -53,33 +53,47 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rspec
56
+ name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '3.0'
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '3.0'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: coveralls
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: 0.7.2
89
+ version: '3.0'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: 0.7.2
96
+ version: '3.0'
83
97
  description:
84
98
  email:
85
99
  - alexgenco@gmail.com
@@ -101,6 +115,7 @@ files:
101
115
  - lib/neovim.rb
102
116
  - lib/neovim/api_info.rb
103
117
  - lib/neovim/async_session.rb
118
+ - lib/neovim/buffer.rb
104
119
  - lib/neovim/client.rb
105
120
  - lib/neovim/current.rb
106
121
  - lib/neovim/event_loop.rb
@@ -111,11 +126,14 @@ files:
111
126
  - lib/neovim/plugin.rb
112
127
  - lib/neovim/request.rb
113
128
  - lib/neovim/session.rb
129
+ - lib/neovim/tabpage.rb
114
130
  - lib/neovim/version.rb
131
+ - lib/neovim/window.rb
115
132
  - neovim.gemspec
116
133
  - spec/acceptance/neovim-ruby-host_spec.rb
117
134
  - spec/helper.rb
118
135
  - spec/neovim/async_session_spec.rb
136
+ - spec/neovim/buffer_spec.rb
119
137
  - spec/neovim/client_spec.rb
120
138
  - spec/neovim/current_spec.rb
121
139
  - spec/neovim/event_loop_spec.rb
@@ -124,6 +142,7 @@ files:
124
142
  - spec/neovim/object_spec.rb
125
143
  - spec/neovim/plugin_spec.rb
126
144
  - spec/neovim/session_spec.rb
145
+ - spec/neovim/window_spec.rb
127
146
  - spec/neovim_spec.rb
128
147
  homepage: https://github.com/alexgenco/neovim-ruby
129
148
  licenses:
@@ -145,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
164
  version: '0'
146
165
  requirements: []
147
166
  rubyforge_project:
148
- rubygems_version: 2.4.6
167
+ rubygems_version: 2.4.5
149
168
  signing_key:
150
169
  specification_version: 4
151
170
  summary: A Ruby client for Neovim
@@ -153,6 +172,7 @@ test_files:
153
172
  - spec/acceptance/neovim-ruby-host_spec.rb
154
173
  - spec/helper.rb
155
174
  - spec/neovim/async_session_spec.rb
175
+ - spec/neovim/buffer_spec.rb
156
176
  - spec/neovim/client_spec.rb
157
177
  - spec/neovim/current_spec.rb
158
178
  - spec/neovim/event_loop_spec.rb
@@ -161,4 +181,5 @@ test_files:
161
181
  - spec/neovim/object_spec.rb
162
182
  - spec/neovim/plugin_spec.rb
163
183
  - spec/neovim/session_spec.rb
184
+ - spec/neovim/window_spec.rb
164
185
  - spec/neovim_spec.rb