forked from jnicklas/templater
-
Notifications
You must be signed in to change notification settings - Fork 1
/
spec_helper.rb
64 lines (52 loc) · 1.58 KB
/
spec_helper.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
$TESTING=true
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
def template_path(template)
File.expand_path(File.join(File.dirname(__FILE__), 'templates', template))
end
def result_path(result)
File.expand_path(File.join(File.dirname(__FILE__), 'results', result))
end
require 'templater.rb'
require 'rubygems'
require 'rspec'
require 'fileutils'
# Added a cross-platform temporary directory helper
# This was taken from MSpec
# http://github.com/rubyspec/mspec/tree/master
# http://github.com/rubyspec/mspec/tree/master/lib/mspec/helpers/tmp.rb
module TmpDirHelper
def tmp(name)
unless @spec_temp_directory
[ "/private/tmp", "/tmp", "/var/tmp", ENV["TMPDIR"], ENV["TMP"],
ENV["TEMP"], ENV["USERPROFILE"] ].each do |dir|
if dir and File.directory?(dir) and File.writable?(dir)
temp = File.expand_path dir
temp = File.readlink temp if File.symlink? temp
@spec_temp_directory = temp
break
end
end
end
File.join @spec_temp_directory, name
end
end
# Add it to Object
Object.send(:include, TmpDirHelper)
class MatchActionNames
def initialize(*names)
@names = names.map{|n| n.to_s}
end
def matches?(actual)
@actual = actual
@actual.map{|a| a.name.to_s}.sort == @names.sort
end
def failure_message
"expected #{@actual.inspect} to have action names #{@names.inspect}, but they didn't"
end
def negative_failure_message
"expected #{@actual.inspect} not to have action names #{@names.inspect}, but they did"
end
end
def have_names(*names)
MatchActionNames.new(*names)
end