neovim 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: