neovim 0.1.0 → 0.2.0

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: 6807525e36364dd7a60d2e24a3e5ad3b5c370d88
4
- data.tar.gz: 59a4fcb659bf1f7f9d2d210aace08b099abb55df
3
+ metadata.gz: e3a9a7f0da47d7d562b10232fe88d5c4ad4fe0d0
4
+ data.tar.gz: f12e9d6d73601ca7f5b1650b4c9d35e391f2755d
5
5
  SHA512:
6
- metadata.gz: 8c19a0766059f4202ce10e4251ee6b88d4db7534c6623c9aec4273386e3af67e92fe2564410f29a5cc8575e71cc488da631b7b6b93a1fcc85aca5492ac9be28e
7
- data.tar.gz: a941792a2f0b00aac4e7b3af6c738835fc1f682e989829fe4af665802276684aad5ad64cf392e5d5234f211acbb64454dbc4cf3d694f9f051f3cbaef4c43787e
6
+ metadata.gz: e3f98a53f364aebc4829e8c11dea30f5930b96686ed3bba9691559ec0947825f42d0ad4a33da4658f2cca2c3e298f07434a25c8b218df6e6c4ab22280933dd04
7
+ data.tar.gz: d37fd74b9f588da7c09844c7c3c7c6cdd18edba7f15e9115cc5bcb54a06744e70337349841ae81ae8b4f116492529a5fbc86ee5a2b60869cdedc6720fd69ece0
@@ -1,3 +1,12 @@
1
+ # 0.2.0
2
+ - Backwards incompatible, but we're pre-1.0.0 so going with minor bump instead
3
+ - Make legacy ruby functions 1-indexed
4
+ - Add Client#evaluate and Client#message
5
+ - Make ruby functions affect global scope
6
+ - Add VIM::{Buffer,Window}.{count,index}
7
+ - Add minor debug logging to Session and AsyncSession
8
+ - Remove race condition in Session fiber handling
9
+
1
10
  # 0.1.0
2
11
  - Add --version, -V to neovim-ruby-host executable
3
12
  - Update object interfaces to be compatible with Vim :ruby API
data/Gemfile CHANGED
@@ -1,8 +1,12 @@
1
1
  source "https://rubygems.org"
2
2
  gemspec
3
3
 
4
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.0.0")
5
- gem "pry-byebug"
6
- else
7
- gem "pry-debugger"
4
+ group :development do
5
+ if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new("2.0.0")
6
+ gem "coveralls"
7
+ gem "pry-byebug"
8
+ else
9
+ gem "coveralls", "0.8.13"
10
+ gem "pry-debugger"
11
+ end
8
12
  end
@@ -59,6 +59,7 @@ module Neovim
59
59
  # @see EventLoop#run
60
60
  def run(session=nil, &callback)
61
61
  @msgpack_stream.run(session) do |msg|
62
+ debug("received #{msg.inspect}")
62
63
  kind, *payload = msg
63
64
 
64
65
  case kind
@@ -56,7 +56,7 @@ module Neovim
56
56
  #
57
57
  # @return [Fixnum]
58
58
  def count
59
- lines.to_a.size
59
+ line_count
60
60
  end
61
61
 
62
62
  # Get the number of lines.
@@ -66,38 +66,38 @@ module Neovim
66
66
  count
67
67
  end
68
68
 
69
- # Get the line at the given index.
69
+ # Get the given line (1-indexed).
70
70
  #
71
71
  # @param index [Fixnum]
72
72
  # @return [String]
73
73
  def [](index)
74
- lines[index]
74
+ lines[index-1]
75
75
  end
76
76
 
77
- # Set the line at the given index.
77
+ # Set the given line (1-indexed).
78
78
  #
79
79
  # @param index [Fixnum]
80
80
  # @param str [String]
81
81
  # @return [String]
82
82
  def []=(index, str)
83
- lines[index] = str
83
+ lines[index-1] = str
84
84
  end
85
85
 
86
- # Delete the line at the given index.
86
+ # Delete the given line (1-indexed).
87
87
  #
88
88
  # @param index [Fixnum]
89
89
  # @return [void]
90
90
  def delete(index)
91
- lines.delete(index)
91
+ lines.delete(index-1)
92
92
  end
93
93
 
94
- # Append a line after the given index.
94
+ # Append a line after the given line (1-indexed).
95
95
  #
96
96
  # @param index [Fixnum]
97
97
  # @param str [String]
98
98
  # @return [String]
99
99
  def append(index, str)
100
- lines[index, 1] = [lines[index], str]
100
+ lines[index-1, 1] = [lines[index-1], str]
101
101
  str
102
102
  end
103
103
 
@@ -50,6 +50,24 @@ module Neovim
50
50
  @current ||= Current.new(@session)
51
51
  end
52
52
 
53
+ # Evaluate the VimL expression (alias for +vim_eval+).
54
+ #
55
+ # @param expr [String] A VimL expression.
56
+ # @return [Object]
57
+ # @example Return a list from VimL
58
+ # client.evaluate('[1, 2]') # => [1, 2]
59
+ def evaluate(expr)
60
+ @api.function(:vim_eval).call(@session, expr)
61
+ end
62
+
63
+ # Display a message.
64
+ #
65
+ # @param string [String] The message.
66
+ # @return [void]
67
+ def message(string)
68
+ out_write(string)
69
+ end
70
+
53
71
  private
54
72
 
55
73
  def rpc_methods
@@ -1,3 +1,5 @@
1
+ $__ruby_provider_scope = binding
2
+
1
3
  class VIM < BasicObject
2
4
  class << self
3
5
  attr_accessor :__client
@@ -17,6 +19,14 @@ module Neovim
17
19
  def self.current
18
20
  ::VIM.current.buffer
19
21
  end
22
+
23
+ def self.count
24
+ ::VIM.get_buffers.size
25
+ end
26
+
27
+ def self.[](index)
28
+ ::VIM.get_buffers[index]
29
+ end
20
30
  end
21
31
 
22
32
  # Make +VIM::Window.current+ return the current buffer.
@@ -24,6 +34,14 @@ module Neovim
24
34
  def self.current
25
35
  ::VIM.current.window
26
36
  end
37
+
38
+ def self.count
39
+ ::VIM.get_windows.size
40
+ end
41
+
42
+ def self.[](index)
43
+ ::VIM.get_windows[index]
44
+ end
27
45
  end
28
46
 
29
47
  module RubyProvider
@@ -38,7 +56,7 @@ module Neovim
38
56
  def self.define_ruby_execute(plug)
39
57
  plug.rpc(:ruby_execute, sync: true) do |nvim, ruby|
40
58
  wrap_client(nvim) do
41
- eval(ruby, binding, __FILE__, __LINE__)
59
+ $__ruby_provider_scope.eval(ruby, __FILE__, __LINE__)
42
60
  end
43
61
  end
44
62
  end
@@ -47,7 +65,7 @@ module Neovim
47
65
  def self.define_ruby_execute_file(plug)
48
66
  plug.rpc(:ruby_execute_file, sync: true) do |nvim, path|
49
67
  wrap_client(nvim) do
50
- eval(File.read(path), binding, __FILE__, __LINE__)
68
+ $__ruby_provider_scope.eval(File.read(path), __FILE__, __LINE__)
51
69
  end
52
70
  end
53
71
  end
@@ -55,7 +73,7 @@ module Neovim
55
73
 
56
74
  def self.define_ruby_do_range(plug)
57
75
  plug.rpc(:ruby_do_range, sync: true) do |nvim, *args|
58
- begin
76
+ wrap_client(nvim) do
59
77
  start, stop, ruby = args
60
78
  buffer = nvim.current.buffer
61
79
 
@@ -64,72 +82,60 @@ module Neovim
64
82
  lines = buffer.get_lines(_start, _stop, true)
65
83
 
66
84
  lines.map! do |line|
67
- $_ = line
68
- eval(ruby, binding, __FILE__, __LINE__)
69
- String($_)
85
+ $__ruby_provider_scope.eval("$_ = #{line.inspect}")
86
+ $__ruby_provider_scope.eval(ruby, __FILE__, __LINE__)
87
+ $__ruby_provider_scope.eval("$_")
70
88
  end
71
89
 
72
90
  buffer.set_lines(_start, _stop, true, lines)
73
91
  end
74
- ensure
75
- $_ = nil
76
92
  end
77
93
  end
78
94
  end
79
95
  private_class_method :define_ruby_do_range
80
96
 
81
- def self.wrap_client(client)
82
- with_globals(client) do
83
- with_vim_constant(client) do
84
- with_redirect_streams(client) do
97
+ def self.wrap_client(__client)
98
+ with_globals(__client) do
99
+ with_vim_constant(__client) do
100
+ with_redirect_streams(__client) do
85
101
  yield
86
102
  end
87
103
  end
88
104
  end
105
+ nil
89
106
  end
90
107
  private_class_method :wrap_client
91
108
 
92
109
  def self.with_globals(client)
93
- $curwin = client.current.window
94
110
  $curbuf = client.current.buffer
95
-
96
- begin
97
- yield
98
- ensure
99
- $curwin = $curbuf = nil
100
- end
111
+ $curwin = client.current.window
112
+ yield
101
113
  end
102
114
  private_class_method :with_globals
103
115
 
104
116
  def self.with_vim_constant(client)
105
117
  ::VIM.__client = client
106
-
107
- begin
108
- yield
109
- ensure
110
- ::VIM.__client = nil
111
- end
118
+ yield
112
119
  end
113
120
  private_class_method :with_vim_constant
114
121
 
115
122
  def self.with_redirect_streams(client)
116
- old_out_write = $stdout.method(:write)
117
- old_err_write = $stderr.method(:write)
123
+ @with_redirect_streams ||= begin
124
+ old_out_write = $stdout.method(:write)
125
+ old_err_write = $stderr.method(:write)
118
126
 
119
- $stdout.define_singleton_method(:write) do |string|
120
- client.out_write(string)
121
- end
127
+ $stdout.define_singleton_method(:write) do |string|
128
+ client.out_write(string)
129
+ end
122
130
 
123
- $stderr.define_singleton_method(:write) do |string|
124
- client.err_write(string)
125
- end
131
+ $stderr.define_singleton_method(:write) do |string|
132
+ client.err_write(string)
133
+ end
126
134
 
127
- begin
128
- yield
129
- ensure
130
- $stdout.define_singleton_method(:write, &old_out_write)
131
- $stderr.define_singleton_method(:write, &old_err_write)
135
+ true
132
136
  end
137
+
138
+ yield
133
139
  end
134
140
  private_class_method :with_redirect_streams
135
141
  end
@@ -1,12 +1,15 @@
1
1
  require "neovim/api"
2
2
  require "neovim/async_session"
3
3
  require "neovim/event_loop"
4
+ require "neovim/logging"
4
5
  require "neovim/msgpack_stream"
5
6
  require "fiber"
6
7
 
7
8
  module Neovim
8
9
  # Wraps an +AsyncSession+ in a synchronous API using +Fiber+s.
9
10
  class Session
11
+ include Logging
12
+
10
13
  # Connect to a TCP socket.
11
14
  #
12
15
  # @param host [String] The hostname or IP address
@@ -54,7 +57,7 @@ module Neovim
54
57
  def initialize(async_session)
55
58
  @async_session = async_session
56
59
  @pending_messages = []
57
- @in_handler = false
60
+ @main_fiber = Fiber.current
58
61
  @running = false
59
62
  end
60
63
 
@@ -86,13 +89,13 @@ module Neovim
86
89
  @running = true
87
90
 
88
91
  while message = @pending_messages.shift
89
- in_handler_fiber { yield message if block_given? }
92
+ Fiber.new { yield message if block_given? }.resume
90
93
  end
91
94
 
92
95
  return unless @running
93
96
 
94
97
  @async_session.run(self) do |message|
95
- in_handler_fiber { yield message if block_given? }
98
+ Fiber.new { yield message if block_given? }.resume
96
99
  end
97
100
  ensure
98
101
  stop
@@ -114,10 +117,12 @@ module Neovim
114
117
  # @return [Object] The response from the RPC call
115
118
  # @raise [ArgumentError] An error returned from +nvim+
116
119
  def request(method, *args)
117
- if @in_handler
118
- err, res = running_request(method, *args)
119
- else
120
+ if Fiber.current == @main_fiber
121
+ debug("handling blocking request")
120
122
  err, res = stopped_request(method, *args)
123
+ else
124
+ debug("yielding request to fiber")
125
+ err, res = running_request(method, *args)
121
126
  end
122
127
 
123
128
  err ? raise(ArgumentError, err) : res
@@ -160,17 +165,6 @@ module Neovim
160
165
 
161
166
  private
162
167
 
163
- def in_handler_fiber(&block)
164
- Fiber.new do
165
- @in_handler = true
166
- begin
167
- block.call
168
- ensure
169
- @in_handler = false
170
- end
171
- end.resume
172
- end
173
-
174
168
  def running_request(method, *args)
175
169
  fiber = Fiber.current
176
170
  @async_session.request(method, *args) do |err, res|
@@ -1,3 +1,3 @@
1
1
  module Neovim
2
- VERSION = Gem::Version.new("0.1.0")
2
+ VERSION = Gem::Version.new("0.2.0")
3
3
  end
@@ -22,6 +22,5 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "bundler"
23
23
  spec.add_development_dependency "rake"
24
24
  spec.add_development_dependency "pry"
25
- spec.add_development_dependency "coveralls"
26
25
  spec.add_development_dependency "rspec", "~> 3.0"
27
26
  end
@@ -35,6 +35,68 @@ RSpec.describe "ruby_provider" do
35
35
  nvim.eval("rpcrequest(host, 'ruby_execute', #{ruby})")
36
36
  }.to change { nvim.current.buffer.lines.to_a }.to(["line"])
37
37
  end
38
+
39
+ it "exposes VIM::Buffer.current" do
40
+ expect {
41
+ ruby = "VIM::Buffer.current.lines = ['line']".inspect
42
+ nvim.eval("rpcrequest(host, 'ruby_execute', #{ruby})")
43
+ }.to change { nvim.current.buffer.lines.to_a }.to(["line"])
44
+ end
45
+
46
+ it "exposes VIM::Buffer.count" do
47
+ ruby = "VIM.set_var('count', VIM::Buffer.count)".inspect
48
+ nvim.eval("rpcrequest(host, 'ruby_execute', #{ruby})")
49
+ expect(nvim.get_var("count")).to eq(1)
50
+
51
+ nvim.command("tabe")
52
+
53
+ ruby = "VIM.set_var('count', VIM::Buffer.count)".inspect
54
+ nvim.eval("rpcrequest(host, 'ruby_execute', #{ruby})")
55
+ expect(nvim.get_var("count")).to eq(2)
56
+ end
57
+
58
+ it "exposes VIM::Buffer[]" do
59
+ expect {
60
+ ruby = "VIM::Buffer[0].lines = ['line']".inspect
61
+ nvim.eval("rpcrequest(host, 'ruby_execute', #{ruby})")
62
+ }.to change { nvim.current.buffer.lines.to_a }.to(["line"])
63
+ end
64
+
65
+ it "exposes VIM::Window.current" do
66
+ nvim.command("vsplit")
67
+ expect {
68
+ ruby = "VIM::Window.current.width = 12".inspect
69
+ nvim.eval("rpcrequest(host, 'ruby_execute', #{ruby})")
70
+ }.to change { nvim.current.window.width }.to(12)
71
+ end
72
+
73
+ it "exposes VIM::Window.count" do
74
+ ruby = "VIM.set_var('count', VIM::Window.count)".inspect
75
+ nvim.eval("rpcrequest(host, 'ruby_execute', #{ruby})")
76
+ expect(nvim.get_var("count")).to eq(1)
77
+
78
+ nvim.command("vsplit")
79
+
80
+ ruby = "VIM.set_var('count', VIM::Window.count)".inspect
81
+ nvim.eval("rpcrequest(host, 'ruby_execute', #{ruby})")
82
+ expect(nvim.get_var("count")).to eq(2)
83
+ end
84
+
85
+ it "exposes VIM::Window[]" do
86
+ nvim.command("vsplit")
87
+ expect {
88
+ ruby = "VIM::Window[0].width = 12".inspect
89
+ nvim.eval("rpcrequest(host, 'ruby_execute', #{ruby})")
90
+ }.to change { nvim.current.window.width }.to(12)
91
+ end
92
+
93
+ it "persists state between requests" do
94
+ nvim.eval("rpcrequest(host, 'ruby_execute', 'def foo; VIM.command(\"let g:called = 1\"); end')")
95
+ expect { nvim.get_var("called") }.to raise_error(/key not found/i)
96
+
97
+ nvim.eval("rpcrequest(host, 'ruby_execute', 'foo')")
98
+ expect(nvim.get_var("called")).to be(1)
99
+ end
38
100
  end
39
101
 
40
102
  describe "ruby_execute_file" do
@@ -62,6 +124,73 @@ RSpec.describe "ruby_provider" do
62
124
  nvim.eval("rpcrequest(host, 'ruby_execute_file', '#{script_path}')")
63
125
  }.to change { nvim.current.buffer.lines.to_a }.to(["line"])
64
126
  end
127
+
128
+ it "exposes VIM::Buffer.current" do
129
+ File.write(script_path, "VIM::Buffer.current.lines = ['line']")
130
+
131
+ expect {
132
+ nvim.eval("rpcrequest(host, 'ruby_execute_file', '#{script_path}')")
133
+ }.to change { nvim.current.buffer.lines.to_a }.to(["line"])
134
+ end
135
+
136
+ it "exposes VIM::Buffer.count" do
137
+ File.write(script_path, "VIM.set_var('count', VIM::Buffer.count)")
138
+ nvim.eval("rpcrequest(host, 'ruby_execute_file', '#{script_path}')")
139
+ expect(nvim.get_var("count")).to eq(1)
140
+
141
+ nvim.command("tabe")
142
+
143
+ File.write(script_path, "VIM.set_var('count', VIM::Buffer.count)")
144
+ nvim.eval("rpcrequest(host, 'ruby_execute_file', '#{script_path}')")
145
+ expect(nvim.get_var("count")).to eq(2)
146
+ end
147
+
148
+ it "exposes VIM::Buffer[]" do
149
+ File.write(script_path, "VIM::Buffer[0].lines = ['line']")
150
+
151
+ expect {
152
+ nvim.eval("rpcrequest(host, 'ruby_execute_file', '#{script_path}')")
153
+ }.to change { nvim.current.buffer.lines.to_a }.to(["line"])
154
+ end
155
+
156
+ it "exposes VIM::Window.current" do
157
+ nvim.command("vsplit")
158
+ File.write(script_path, "VIM::Window.current.width = 12")
159
+
160
+ expect {
161
+ nvim.eval("rpcrequest(host, 'ruby_execute_file', '#{script_path}')")
162
+ }.to change { nvim.current.window.width }.to(12)
163
+ end
164
+
165
+ it "exposes VIM::Window.count" do
166
+ File.write(script_path, "VIM.set_var('count', VIM::Window.count)")
167
+ nvim.eval("rpcrequest(host, 'ruby_execute_file', '#{script_path}')")
168
+ expect(nvim.get_var("count")).to eq(1)
169
+
170
+ nvim.command("vsplit")
171
+
172
+ File.write(script_path, "VIM.set_var('count', VIM::Window.count)")
173
+ nvim.eval("rpcrequest(host, 'ruby_execute_file', '#{script_path}')")
174
+ expect(nvim.get_var("count")).to eq(2)
175
+ end
176
+
177
+ it "exposes VIM::Window[]" do
178
+ nvim.command("vsplit")
179
+ File.write(script_path, "VIM::Window[0].width = 12")
180
+
181
+ expect {
182
+ nvim.eval("rpcrequest(host, 'ruby_execute_file', '#{script_path}')")
183
+ }.to change { nvim.current.window.width }.to(12)
184
+ end
185
+
186
+ it "persists state between requests" do
187
+ File.write(script_path, "def foo; VIM.command(\"let g:called = 1\"); end")
188
+ nvim.eval("rpcrequest(host, 'ruby_execute_file', '#{script_path}')")
189
+ expect { nvim.get_var("called") }.to raise_error(/key not found/i)
190
+
191
+ nvim.eval("rpcrequest(host, 'ruby_execute', 'foo')")
192
+ expect(nvim.get_var("called")).to be(1)
193
+ end
65
194
  end
66
195
 
67
196
  describe "ruby_do_range" do
@@ -1,5 +1,4 @@
1
1
  require "bundler/setup"
2
- require "mkmf"
3
2
  require "neovim"
4
3
  require "pry"
5
4
  require "timeout"
@@ -11,7 +10,7 @@ if ENV["REPORT_COVERAGE"]
11
10
  Coveralls.wear!
12
11
  end
13
12
 
14
- unless find_executable0("nvim")
13
+ unless system("nvim -nu NONE +q")
15
14
  warn("Can't find `nvim` executable. See installation instructions:")
16
15
  warn("https://github.com/neovim/neovim/wiki/Installing-Neovim")
17
16
  exit(1)
@@ -63,19 +63,19 @@ module Neovim
63
63
  end
64
64
 
65
65
  describe "#[]" do
66
- it "returns the line at the given index" do
66
+ it "returns the given line" do
67
67
  buffer.lines = ["one", "two", "three"]
68
- expect(buffer[1]).to eq("two")
68
+ expect(buffer[2]).to eq("two")
69
69
  end
70
70
  end
71
71
 
72
72
  describe "#[]=" do
73
- it "sets the line at the given index" do
74
- buffer.lines = ["one", "two"]
73
+ it "sets the given line" do
74
+ buffer.lines = ["first", "second"]
75
75
 
76
76
  expect {
77
- buffer[0] = "first"
78
- }.to change { buffer.lines }.to(["first", "two"])
77
+ buffer[2] = "last"
78
+ }.to change { buffer.lines.to_a }.to(["first", "last"])
79
79
  end
80
80
 
81
81
  it "returns the line" do
@@ -94,7 +94,7 @@ module Neovim
94
94
  buffer.lines = ["one", "two"]
95
95
 
96
96
  expect {
97
- buffer.delete(0)
97
+ buffer.delete(1)
98
98
  }.to change { buffer.lines }.to(["two"])
99
99
  end
100
100
  end
@@ -104,7 +104,7 @@ module Neovim
104
104
  buffer.lines = ["one"]
105
105
 
106
106
  expect {
107
- buffer.append(0, "two")
107
+ buffer.append(1, "two")
108
108
  }.to change { buffer.lines.to_a }.to(["one", "two"])
109
109
  end
110
110
 
@@ -117,6 +117,8 @@ module Neovim
117
117
  it "returns the current line on an active buffer" do
118
118
  buffer.lines = ["one", "two"]
119
119
  expect(buffer.line).to eq("one")
120
+ client.command("normal j")
121
+ expect(buffer.line).to eq("two")
120
122
  end
121
123
 
122
124
  it "returns nil on an inactive buffer" do
@@ -53,5 +53,36 @@ module Neovim
53
53
  expect(client.current.tabpage).to be_a(Tabpage)
54
54
  end
55
55
  end
56
+
57
+ describe "if_ruby compatibility" do
58
+ describe "#evaluate" do
59
+ it "evaluates the vim expression" do
60
+ client.command("let g:foo = [1, 2]")
61
+ expect(client.evaluate("g:foo")).to eq([1, 2])
62
+ end
63
+ end
64
+
65
+ describe "#message" do
66
+ it "writes a message (testing presence of method, not side-effects)" do
67
+ client.send(:message, "test")
68
+ end
69
+ end
70
+
71
+ describe "#set_option" do
72
+ it "sets an option" do
73
+ expect {
74
+ client.set_option("makeprg", "rake")
75
+ }.to change { client.get_option("makeprg") }
76
+ end
77
+ end
78
+
79
+ describe "#command" do
80
+ it "runs the provided command" do
81
+ expect {
82
+ client.command("normal ix")
83
+ }.to change { client.current.buffer.lines }.to(["x"])
84
+ end
85
+ end
86
+ end
56
87
  end
57
88
  end
metadata CHANGED
@@ -1,97 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neovim
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Genco
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-03 00:00:00.000000000 Z
11
+ date: 2016-07-08 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
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
26
  version: '0.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
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
- - - ">="
66
+ - - '>='
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rspec
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - "~>"
73
+ - - ~>
88
74
  - !ruby/object:Gem::Version
89
75
  version: '3.0'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - "~>"
80
+ - - ~>
95
81
  - !ruby/object:Gem::Version
96
82
  version: '3.0'
97
83
  description:
@@ -102,9 +88,9 @@ executables:
102
88
  extensions: []
103
89
  extra_rdoc_files: []
104
90
  files:
105
- - ".coveralls.yml"
106
- - ".gitignore"
107
- - ".travis.yml"
91
+ - .coveralls.yml
92
+ - .gitignore
93
+ - .travis.yml
108
94
  - CHANGELOG.md
109
95
  - Gemfile
110
96
  - LICENSE.txt
@@ -166,17 +152,17 @@ require_paths:
166
152
  - lib
167
153
  required_ruby_version: !ruby/object:Gem::Requirement
168
154
  requirements:
169
- - - ">="
155
+ - - '>='
170
156
  - !ruby/object:Gem::Version
171
157
  version: '0'
172
158
  required_rubygems_version: !ruby/object:Gem::Requirement
173
159
  requirements:
174
- - - ">="
160
+ - - '>='
175
161
  - !ruby/object:Gem::Version
176
162
  version: '0'
177
163
  requirements: []
178
164
  rubyforge_project:
179
- rubygems_version: 2.4.5
165
+ rubygems_version: 2.0.14.1
180
166
  signing_key:
181
167
  specification_version: 4
182
168
  summary: A Ruby client for Neovim
@@ -200,4 +186,3 @@ test_files:
200
186
  - spec/neovim/window_spec.rb
201
187
  - spec/neovim_spec.rb
202
188
  - spec/support.rb
203
- has_rdoc: