spin 0.4.5 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/spin +44 -11
- metadata +2 -2
data/bin/spin
CHANGED
@@ -13,6 +13,7 @@ require 'digest/md5'
|
|
13
13
|
# environment.
|
14
14
|
require 'benchmark'
|
15
15
|
require 'optparse'
|
16
|
+
require 'pathname'
|
16
17
|
|
17
18
|
SEPARATOR = '|'
|
18
19
|
|
@@ -46,8 +47,18 @@ def disconnect(connection)
|
|
46
47
|
connection.close
|
47
48
|
end
|
48
49
|
|
50
|
+
def rails_root
|
51
|
+
path = Pathname.pwd
|
52
|
+
until path.join('config/application.rb').file?
|
53
|
+
return if path.root?
|
54
|
+
path = path.parent
|
55
|
+
end
|
56
|
+
path
|
57
|
+
end
|
58
|
+
|
49
59
|
# ## spin serve
|
50
60
|
def serve(force_rspec, force_testunit, time, push_results)
|
61
|
+
root_path = rails_root and Dir.chdir(root_path)
|
51
62
|
file = socket_file
|
52
63
|
|
53
64
|
# We delete the tmp file for the Unix socket if it already exists. The file
|
@@ -62,7 +73,7 @@ def serve(force_rspec, force_testunit, time, push_results)
|
|
62
73
|
|
63
74
|
test_framework = nil
|
64
75
|
|
65
|
-
if
|
76
|
+
if root_path
|
66
77
|
sec = Benchmark.realtime {
|
67
78
|
# We require config/application because that file (typically) loads Rails
|
68
79
|
# and any Bundler deps, as well as loading the initialization code for
|
@@ -150,6 +161,8 @@ def serve(force_rspec, force_testunit, time, push_results)
|
|
150
161
|
# Don't abort if the client already disconnected
|
151
162
|
end
|
152
163
|
end
|
164
|
+
ensure
|
165
|
+
File.delete(file) if file && File.exist?(file)
|
153
166
|
end
|
154
167
|
|
155
168
|
def fork_and_run(files, push_results, test_framework, conn)
|
@@ -195,18 +208,38 @@ def push
|
|
195
208
|
# bit will just be ignored.
|
196
209
|
#
|
197
210
|
# We build a string like `file1.rb|file2.rb` and pass it up to the server.
|
198
|
-
|
199
|
-
|
211
|
+
files_to_load.map! do |file|
|
212
|
+
args = file.split(':')
|
213
|
+
|
214
|
+
file_name = args.first.to_s
|
215
|
+
line_number = args.last.to_i
|
200
216
|
|
201
217
|
# If the file exists then we can push it up just like it is
|
202
|
-
if File.exist?(
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
218
|
+
file_name = if File.exist?(file_name)
|
219
|
+
file_name
|
220
|
+
# kicker-2.5.0 now gives us file names without extensions, so we have to try adding it
|
221
|
+
elsif File.extname(file_name).empty?
|
222
|
+
full_file_name = [file_name, 'rb'].join('.')
|
223
|
+
full_file_name if File.exist?(full_file_name)
|
224
|
+
end
|
225
|
+
|
226
|
+
if line_number > 0
|
227
|
+
abort "You specified a line number. Only one file can be pushed in this case." if files_to_load.length > 1
|
228
|
+
|
229
|
+
"#{file_name}:#{line_number}"
|
230
|
+
else
|
231
|
+
file_name
|
232
|
+
end
|
233
|
+
end.compact.uniq
|
234
|
+
|
235
|
+
if root_path = rails_root
|
236
|
+
files_to_load.map! do |file|
|
237
|
+
Pathname.new(file).expand_path.relative_path_from(root_path).to_s
|
238
|
+
end
|
239
|
+
Dir.chdir root_path
|
240
|
+
end
|
241
|
+
|
242
|
+
f = files_to_load.join(SEPARATOR)
|
210
243
|
|
211
244
|
abort if f.empty?
|
212
245
|
puts "Spinning up #{f}"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-05-21 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: ! 'Spin preloads your Rails environment to speed up your autotest(ish)
|
15
15
|
workflow.
|