44 lines
880 B
Ruby
44 lines
880 B
Ruby
require 'tmpdir'
|
|
require 'vimrunner'
|
|
|
|
module Support
|
|
def assert_correct_indenting(string)
|
|
whitespace = string.scan(/^\s*/).first
|
|
string = string.split("\n").map { |line| line.gsub /^#{whitespace}/, '' }.join("\n").strip
|
|
|
|
File.open 'test.rb', 'w' do |f|
|
|
f.write string
|
|
end
|
|
|
|
@vim.edit 'test.rb'
|
|
@vim.normal 'gg=G'
|
|
@vim.write
|
|
|
|
IO.read('test.rb').strip.should eq string
|
|
end
|
|
end
|
|
|
|
RSpec.configure do |config|
|
|
include Support
|
|
|
|
config.before(:suite) do
|
|
VIM = Vimrunner.start_gvim
|
|
VIM.prepend_runtimepath(File.expand_path('../..', __FILE__))
|
|
end
|
|
|
|
config.after(:suite) do
|
|
VIM.kill
|
|
end
|
|
|
|
config.around(:each) do |example|
|
|
@vim = VIM
|
|
|
|
# cd into a temporary directory for every example.
|
|
Dir.mktmpdir do |dir|
|
|
Dir.chdir(dir) do
|
|
@vim.command("cd #{dir}")
|
|
example.call
|
|
end
|
|
end
|
|
end
|
|
end
|