Object
Returns true if the testing frameworks helper file exists. Override if this is not sufficient to detect your testing framework.
# File lib/spork/test_framework.rb, line 110
110: def self.available?
111: File.exist?(helper_file)
112: end
Returns a list of all testing servers that have detected their testing framework being used in the project.
# File lib/spork/test_framework.rb, line 65
65: def self.available_test_frameworks
66: supported_test_frameworks.select { |s| s.available? }
67: end
# File lib/spork/test_framework.rb, line 56
56: def self.default_port
57: (ENV["#{short_name.upcase}_DRB"] || self::DEFAULT_PORT).to_i
58: end
# File lib/spork/test_framework.rb, line 40
40: def self.factory(output = STDOUT, error = STDERR, beginning_with = nil)
41: if beginning_with
42: @klass = supported_test_frameworks(beginning_with).first
43: raise(NoFrameworkMatched.new(beginning_with)) if @klass.nil?
44: raise(FrameworkNotAvailable.new(@klass)) unless @klass.available?
45: else
46: @klass = available_test_frameworks.first
47: raise(NoFrameworksAvailable.new) unless @klass
48: end
49: @klass.new(output, error)
50: end
# File lib/spork/test_framework.rb, line 52
52: def self.helper_file
53: self::HELPER_FILE
54: end
Used to specify
# File lib/spork/test_framework.rb, line 115
115: def self.load_preference_index
116: LOAD_PREFERENCE.index(short_name) || LOAD_PREFERENCE.length
117: end
# File lib/spork/test_framework.rb, line 36
36: def initialize(stdout = STDOUT, stderr = STDERR)
37: @stdout, @stderr = stdout, stderr
38: end
# File lib/spork/test_framework.rb, line 60
60: def self.short_name
61: self.name.gsub('Spork::TestFramework::', '')
62: end
Returns a list of all servers that have been implemented (it keeps track of them automatically via Class.inherited)
# File lib/spork/test_framework.rb, line 70
70: def self.supported_test_frameworks(starting_with = nil)
71: @@supported_test_frameworks.sort! { |a,b| a.load_preference_index <=> b.load_preference_index }
72: return @@supported_test_frameworks if starting_with.nil?
73: @@supported_test_frameworks.select do |s|
74: s.short_name.match(/^#{Regexp.escape(starting_with)}/)
75: end
76: end
Bootstraps the current test helper file by prepending a Spork.prefork and Spork.each_run block at the beginning.
# File lib/spork/test_framework.rb, line 92
92: def bootstrap
93: if bootstrapped?
94: stderr.puts "Already bootstrapped!"
95: return
96: end
97: stderr.puts "Bootstrapping #{helper_file}."
98: contents = File.read(helper_file)
99: bootstrap_code = File.read(BOOTSTRAP_FILE)
100: File.open(helper_file, "wb") do |f|
101: f.puts bootstrap_code
102: f.puts contents
103: end
104:
105: stderr.puts "Done. Edit #{helper_file} now with your favorite text editor and follow the instructions."
106: true
107: end
Detects if the test helper has been bootstrapped.
# File lib/spork/test_framework.rb, line 87
87: def bootstrapped?
88: File.read(helper_file).include?("Spork.prefork")
89: end
# File lib/spork/test_framework.rb, line 153
153: def default_port
154: self.class.default_port
155: end
# File lib/spork/test_framework.rb, line 149
149: def entry_point
150: bootstrapped? ? helper_file : framework.entry_point
151: end
# File lib/spork/test_framework.rb, line 82
82: def helper_file
83: self.class.helper_file
84: end
# File lib/spork/test_framework.rb, line 119
119: def preload
120: Spork.exec_prefork do
121: unless bootstrapped?
122: stderr.puts "#{helper_file} has not been bootstrapped. Run spork --bootstrap to do so."
123: stderr.flush
124:
125: if framework.bootstrap_required?
126: stderr.puts "I can't do anything for you by default for the framework your using: #{framework.short_name}.\nYou must bootstrap #{helper_file} to continue."
127: stderr.flush
128: return false
129: else
130: load(framework.entry_point)
131: end
132: end
133:
134: framework.preload do
135: if bootstrapped?
136: stderr.puts "Loading Spork.prefork block..."
137: stderr.flush
138: load(helper_file)
139: end
140: end
141: end
142: true
143: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.