vegas 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/lib/vegas.rb +2 -3
- data/lib/vegas/runner.rb +59 -51
- data/test/test_helper.rb +8 -8
- data/test/test_vegas_runner.rb +24 -25
- data/vegas.gemspec +4 -4
- metadata +10 -4
data/History.txt
CHANGED
data/lib/vegas.rb
CHANGED
data/lib/vegas/runner.rb
CHANGED
@@ -6,7 +6,7 @@ require 'fileutils'
|
|
6
6
|
if Vegas::WINDOWS
|
7
7
|
begin
|
8
8
|
require 'win32/process'
|
9
|
-
rescue
|
9
|
+
rescue
|
10
10
|
puts "Sorry, in order to use Vegas on Windows you need the win32-process gem:",
|
11
11
|
"gem install win32-process"
|
12
12
|
end
|
@@ -16,26 +16,26 @@ module Vegas
|
|
16
16
|
class Runner
|
17
17
|
attr_reader :app, :app_name, :filesystem_friendly_app_name, :quoted_app_name,
|
18
18
|
:rack_handler, :port, :host, :options, :args
|
19
|
-
|
19
|
+
|
20
20
|
ROOT_DIR = File.expand_path(File.join('~', '.vegas'))
|
21
21
|
PORT = 5678
|
22
22
|
HOST = WINDOWS ? 'localhost' : '0.0.0.0'
|
23
|
-
|
23
|
+
|
24
24
|
def initialize(app, app_name, set_options = {}, runtime_args = ARGV, &block)
|
25
25
|
@options = set_options || {}
|
26
|
-
|
26
|
+
|
27
27
|
self.class.logger.level = options[:debug] ? Logger::DEBUG : Logger::INFO
|
28
|
-
|
28
|
+
|
29
29
|
@app = app
|
30
30
|
@app_name = app_name
|
31
|
-
|
31
|
+
|
32
32
|
@filesystem_friendly_app_name = @app_name.gsub(/\W+/, "_")
|
33
33
|
@quoted_app_name = "'#{app_name}'"
|
34
|
-
|
34
|
+
|
35
35
|
@runtime_args = runtime_args
|
36
36
|
@rack_handler = setup_rack_handler
|
37
|
-
|
38
|
-
# load options from opt parser
|
37
|
+
|
38
|
+
# load options from opt parser
|
39
39
|
@args = define_options do |opts|
|
40
40
|
if block_given?
|
41
41
|
opts.separator ''
|
@@ -48,7 +48,7 @@ module Vegas
|
|
48
48
|
kill!
|
49
49
|
exit!(0)
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
# Handle :before_run hook
|
53
53
|
if (before_run = options.delete(:before_run)).respond_to?(:call)
|
54
54
|
before_run.call(self)
|
@@ -56,24 +56,24 @@ module Vegas
|
|
56
56
|
|
57
57
|
# Set app options
|
58
58
|
@host = options[:host] || HOST
|
59
|
-
|
59
|
+
|
60
60
|
if app.respond_to?(:set)
|
61
|
-
app.set(options)
|
61
|
+
app.set(options)
|
62
62
|
app.set(:vegas, self)
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
# Make sure app dir is setup
|
66
66
|
FileUtils.mkdir_p(app_dir)
|
67
|
-
|
67
|
+
|
68
68
|
return if options[:start] == false
|
69
|
-
|
69
|
+
|
70
70
|
# evaluate the launch_path
|
71
71
|
path = if options[:launch_path].respond_to?(:call)
|
72
72
|
options[:launch_path].call(self)
|
73
73
|
else
|
74
74
|
options[:launch_path]
|
75
75
|
end
|
76
|
-
|
76
|
+
|
77
77
|
start(path)
|
78
78
|
end
|
79
79
|
|
@@ -92,7 +92,7 @@ module Vegas
|
|
92
92
|
def log_file
|
93
93
|
options[:log_file] || File.join(app_dir, "#{filesystem_friendly_app_name}.log")
|
94
94
|
end
|
95
|
-
|
95
|
+
|
96
96
|
def url
|
97
97
|
"http://#{host}:#{port}"
|
98
98
|
end
|
@@ -116,7 +116,7 @@ module Vegas
|
|
116
116
|
def find_port
|
117
117
|
if @port = options[:port]
|
118
118
|
announce_port_attempted
|
119
|
-
|
119
|
+
|
120
120
|
unless port_open?
|
121
121
|
logger.warn "Port #{port} is already in use. Please try another. " +
|
122
122
|
"You can also omit the port flag, and we'll find one for you."
|
@@ -124,24 +124,28 @@ module Vegas
|
|
124
124
|
else
|
125
125
|
@port = PORT
|
126
126
|
announce_port_attempted
|
127
|
-
|
127
|
+
|
128
128
|
until port_open?
|
129
129
|
@port += 1
|
130
130
|
announce_port_attempted
|
131
131
|
end
|
132
132
|
end
|
133
133
|
end
|
134
|
-
|
134
|
+
|
135
135
|
def announce_port_attempted
|
136
136
|
logger.info "trying port #{port}..."
|
137
137
|
end
|
138
138
|
|
139
139
|
def port_open?(check_url = nil)
|
140
140
|
begin
|
141
|
-
|
141
|
+
check_url ||= url
|
142
|
+
options[:no_proxy] ? open(check_url, :proxy => nil) : open(check_url)
|
142
143
|
false
|
143
144
|
rescue Errno::ECONNREFUSED => e
|
144
145
|
true
|
146
|
+
rescue Errno::EPERM => e
|
147
|
+
# catches the "Operation not permitted" under Cygwin
|
148
|
+
true
|
145
149
|
end
|
146
150
|
end
|
147
151
|
|
@@ -162,7 +166,7 @@ module Vegas
|
|
162
166
|
|
163
167
|
def run!
|
164
168
|
logger.info "Running with Rack handler: #{@rack_handler.inspect}"
|
165
|
-
|
169
|
+
|
166
170
|
rack_handler.run app, :Host => host, :Port => port do |server|
|
167
171
|
trap(kill_command) do
|
168
172
|
## Use thins' hard #stop! if available, otherwise just #stop
|
@@ -182,13 +186,13 @@ module Vegas
|
|
182
186
|
else
|
183
187
|
Process.daemon(true, true)
|
184
188
|
end
|
185
|
-
|
189
|
+
|
186
190
|
File.umask 0000
|
187
191
|
FileUtils.touch log_file
|
188
192
|
STDIN.reopen log_file
|
189
193
|
STDOUT.reopen log_file, "a"
|
190
194
|
STDERR.reopen log_file, "a"
|
191
|
-
|
195
|
+
|
192
196
|
logger.debug "Child Process: #{Process.pid}"
|
193
197
|
|
194
198
|
File.open(pid_file, 'w') {|f| f.write("#{Process.pid}") }
|
@@ -218,8 +222,8 @@ module Vegas
|
|
218
222
|
logger.info "#{quoted_app_name} not running!"
|
219
223
|
end
|
220
224
|
end
|
221
|
-
|
222
|
-
# Loads a config file at config_path and evals it in the context of the @app.
|
225
|
+
|
226
|
+
# Loads a config file at config_path and evals it in the context of the @app.
|
223
227
|
def load_config_file(config_path)
|
224
228
|
abort "Can not find config file at #{config_path}" if !File.readable?(config_path)
|
225
229
|
config = File.read(config_path)
|
@@ -227,11 +231,11 @@ module Vegas
|
|
227
231
|
config.sub!(/^__END__\n.*/, '')
|
228
232
|
@app.module_eval(config)
|
229
233
|
end
|
230
|
-
|
234
|
+
|
231
235
|
def self.logger=(logger)
|
232
236
|
@logger = logger
|
233
237
|
end
|
234
|
-
|
238
|
+
|
235
239
|
def self.logger
|
236
240
|
@logger ||= LOGGER if defined?(LOGGER)
|
237
241
|
if !@logger
|
@@ -245,16 +249,16 @@ module Vegas
|
|
245
249
|
def logger
|
246
250
|
self.class.logger
|
247
251
|
end
|
248
|
-
|
252
|
+
|
249
253
|
private
|
250
254
|
def setup_rack_handler
|
251
255
|
# First try to set Rack handler via a special hook we honor
|
252
256
|
@rack_handler = if @app.respond_to?(:detect_rack_handler)
|
253
257
|
@app.detect_rack_handler
|
254
|
-
|
258
|
+
|
255
259
|
# If they aren't using our hook, try to use their @app.server settings
|
256
260
|
elsif @app.respond_to?(:server) and @app.server
|
257
|
-
# If :server isn't set, it returns an array of possibilities,
|
261
|
+
# If :server isn't set, it returns an array of possibilities,
|
258
262
|
# sorted from most to least preferable.
|
259
263
|
if @app.server.is_a?(Array)
|
260
264
|
handler = nil
|
@@ -267,32 +271,32 @@ module Vegas
|
|
267
271
|
end
|
268
272
|
end
|
269
273
|
handler
|
270
|
-
|
274
|
+
|
271
275
|
# :server might be set explicitly to a single option like "mongrel"
|
272
276
|
else
|
273
277
|
Rack::Handler.get(@app.server)
|
274
278
|
end
|
275
|
-
|
279
|
+
|
276
280
|
# If all else fails, we'll use Thin
|
277
281
|
else
|
278
282
|
Rack::Handler::Thin
|
279
283
|
end
|
280
284
|
end
|
281
|
-
|
285
|
+
|
282
286
|
def define_options
|
283
287
|
OptionParser.new("", 24, ' ') do |opts|
|
284
|
-
# TODO instead of app_name, we should determine the name of the script
|
288
|
+
# TODO instead of app_name, we should determine the name of the script
|
285
289
|
# used to invoke Vegas and use that here
|
286
290
|
opts.banner = "Usage: #{$0 || app_name} [options]"
|
287
291
|
|
288
292
|
opts.separator ""
|
289
293
|
opts.separator "Vegas options:"
|
290
294
|
|
291
|
-
opts.on('-K', "--kill", "kill the running process and exit") {|k|
|
295
|
+
opts.on('-K', "--kill", "kill the running process and exit") {|k|
|
292
296
|
@should_kill = true
|
293
297
|
}
|
294
298
|
|
295
|
-
opts.on('-S', "--status", "display the current running PID and URL then quit") {|s|
|
299
|
+
opts.on('-S', "--status", "display the current running PID and URL then quit") {|s|
|
296
300
|
status
|
297
301
|
exit!(0)
|
298
302
|
}
|
@@ -309,6 +313,10 @@ module Vegas
|
|
309
313
|
@options[:port] = port
|
310
314
|
}
|
311
315
|
|
316
|
+
opts.on("-x", "--no-proxy", "ignore env proxy settings (e.g. http_proxy)") { |p|
|
317
|
+
@options[:no_proxy] = true
|
318
|
+
}
|
319
|
+
|
312
320
|
opts.on("-e", "--env ENVIRONMENT", "use ENVIRONMENT for defaults (default: development)") { |e|
|
313
321
|
@options[:environment] = e
|
314
322
|
}
|
@@ -320,27 +328,27 @@ module Vegas
|
|
320
328
|
opts.on("-L", "--no-launch", "don't launch the browser") { |f|
|
321
329
|
@options[:skip_launch] = true
|
322
330
|
}
|
323
|
-
|
324
|
-
opts.on('-d', "--debug", "raise the log level to :debug (default: :info)") {|s|
|
331
|
+
|
332
|
+
opts.on('-d', "--debug", "raise the log level to :debug (default: :info)") {|s|
|
325
333
|
@options[:debug] = true
|
326
334
|
}
|
327
|
-
|
328
|
-
opts.on("--app-dir APP_DIR", "set the app dir where files are stored (default: ~/.vegas/#{filesystem_friendly_app_name})/)") {|app_dir|
|
335
|
+
|
336
|
+
opts.on("--app-dir APP_DIR", "set the app dir where files are stored (default: ~/.vegas/#{filesystem_friendly_app_name})/)") {|app_dir|
|
329
337
|
@options[:app_dir] = app_dir
|
330
338
|
}
|
331
|
-
|
332
|
-
opts.on("-P", "--pid-file PID_FILE", "set the path to the pid file (default: app_dir/#{filesystem_friendly_app_name}.pid)") {|pid_file|
|
339
|
+
|
340
|
+
opts.on("-P", "--pid-file PID_FILE", "set the path to the pid file (default: app_dir/#{filesystem_friendly_app_name}.pid)") {|pid_file|
|
333
341
|
@options[:pid_file] = pid_file
|
334
342
|
}
|
335
|
-
|
336
|
-
opts.on("--log-file LOG_FILE", "set the path to the log file (default: app_dir/#{filesystem_friendly_app_name}.log)") {|log_file|
|
343
|
+
|
344
|
+
opts.on("--log-file LOG_FILE", "set the path to the log file (default: app_dir/#{filesystem_friendly_app_name}.log)") {|log_file|
|
337
345
|
@options[:log_file] = log_file
|
338
|
-
}
|
339
|
-
|
340
|
-
opts.on("--url-file URL_FILE", "set the path to the URL file (default: app_dir/#{filesystem_friendly_app_name}.url)") {|url_file|
|
346
|
+
}
|
347
|
+
|
348
|
+
opts.on("--url-file URL_FILE", "set the path to the URL file (default: app_dir/#{filesystem_friendly_app_name}.url)") {|url_file|
|
341
349
|
@options[:url_file] = url_file
|
342
|
-
}
|
343
|
-
|
350
|
+
}
|
351
|
+
|
344
352
|
yield opts if block_given?
|
345
353
|
|
346
354
|
opts.separator ""
|
@@ -375,5 +383,5 @@ module Vegas
|
|
375
383
|
File.delete(pid_file) if File.exist?(pid_file)
|
376
384
|
end
|
377
385
|
end
|
378
|
-
|
386
|
+
|
379
387
|
end
|
data/test/test_helper.rb
CHANGED
@@ -12,18 +12,18 @@ rescue LoadError
|
|
12
12
|
dependencies.each {|f| require f }
|
13
13
|
end
|
14
14
|
|
15
|
-
require File.join(File.dirname(__FILE__), '..', 'lib', 'vegas.rb')
|
16
|
-
require File.join(File.dirname(__FILE__), 'apps.rb')
|
15
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '..', 'lib', 'vegas.rb')
|
16
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'apps.rb')
|
17
17
|
|
18
18
|
|
19
19
|
module TestHelper
|
20
|
-
|
20
|
+
|
21
21
|
def vegas(*args, &block)
|
22
22
|
Vegas::Runner.any_instance.stubs(:daemonize!).once
|
23
23
|
Rack::Handler::Thin.stubs(:run).once
|
24
24
|
@vegas = Vegas::Runner.new(*args, &block)
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
def body
|
28
28
|
last_response.body.to_s
|
29
29
|
end
|
@@ -31,14 +31,14 @@ module TestHelper
|
|
31
31
|
def instance_of(klass)
|
32
32
|
lambda {|obj| obj.is_a?(klass) }
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
def exist_as_file
|
36
36
|
lambda {|obj| File.exist?(obj) }
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
def have_matching_file_content(content_regex)
|
40
|
-
lambda {|obj|
|
41
|
-
File.exist?(obj) && File.read(obj).match(content_regex)
|
40
|
+
lambda {|obj|
|
41
|
+
File.exist?(obj) && File.read(obj).match(content_regex)
|
42
42
|
}
|
43
43
|
end
|
44
44
|
|
data/test/test_vegas_runner.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'test_helper.rb')
|
1
|
+
require File.join('.', File.dirname(__FILE__), 'test_helper.rb')
|
2
2
|
|
3
3
|
Vegas::Runner.class_eval do
|
4
4
|
remove_const :ROOT_DIR
|
@@ -27,11 +27,11 @@ describe 'Vegas::Runner' do
|
|
27
27
|
it "sets app name" do
|
28
28
|
@vegas.app_name.should == 'vegas_test_app_1'
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
it "sets quoted app name" do
|
32
32
|
@vegas.quoted_app_name.should == "'vegas_test_app_1'"
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
it "sets filesystem friendly app name" do
|
36
36
|
@vegas.filesystem_friendly_app_name.should == 'vegas_test_app_1'
|
37
37
|
end
|
@@ -55,14 +55,14 @@ describe 'Vegas::Runner' do
|
|
55
55
|
it "writes a url with the port" do
|
56
56
|
@vegas.url_file.should have_matching_file_content(/0.0.0.0\:#{@vegas.port}/)
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
it "knows where to find the pid file" do
|
60
60
|
@vegas.pid_file.should.equal \
|
61
61
|
File.join(@vegas.app_dir, @vegas.filesystem_friendly_app_name + ".pid")
|
62
62
|
# @vegas.pid_file.should exist_as_file
|
63
63
|
end
|
64
64
|
end
|
65
|
-
|
65
|
+
|
66
66
|
describe 'basic usage with a funky app name' do
|
67
67
|
before do
|
68
68
|
Vegas::Runner.any_instance.expects(:system).once
|
@@ -76,15 +76,15 @@ describe 'Vegas::Runner' do
|
|
76
76
|
it "sets app name" do
|
77
77
|
@vegas.app_name.should == 'Funky YEAH!1!'
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
it "sets quoted app name" do
|
81
81
|
@vegas.quoted_app_name.should == "'Funky YEAH!1!'"
|
82
82
|
end
|
83
|
-
|
83
|
+
|
84
84
|
it "sets filesystem friendly app name" do
|
85
85
|
@vegas.filesystem_friendly_app_name.should == 'Funky_YEAH_1_'
|
86
86
|
end
|
87
|
-
|
87
|
+
|
88
88
|
it "stores options" do
|
89
89
|
@vegas.options[:sessions].should.be.true
|
90
90
|
end
|
@@ -104,14 +104,14 @@ describe 'Vegas::Runner' do
|
|
104
104
|
it "writes a url with the port" do
|
105
105
|
@vegas.url_file.should have_matching_file_content(/0.0.0.0\:#{@vegas.port}/)
|
106
106
|
end
|
107
|
-
|
107
|
+
|
108
108
|
it "knows where to find the pid file" do
|
109
109
|
@vegas.pid_file.should.equal \
|
110
110
|
File.join(@vegas.app_dir, @vegas.filesystem_friendly_app_name + ".pid")
|
111
111
|
# @vegas.pid_file.should exist_as_file
|
112
112
|
end
|
113
113
|
end
|
114
|
-
|
114
|
+
|
115
115
|
describe 'with a sinatra app using an explicit server setting' do
|
116
116
|
before do
|
117
117
|
TestApp1.set :server, "webrick"
|
@@ -119,7 +119,7 @@ describe 'Vegas::Runner' do
|
|
119
119
|
Rack::Handler::WEBrick.stubs(:run)
|
120
120
|
vegas(TestApp1, 'vegas_test_app_1', {:skip_launch => true, :sessions => true}, ["route","--debug"])
|
121
121
|
end
|
122
|
-
|
122
|
+
|
123
123
|
it 'sets the rack handler automaticaly' do
|
124
124
|
@vegas.rack_handler.should == Rack::Handler::WEBrick
|
125
125
|
end
|
@@ -129,36 +129,35 @@ describe 'Vegas::Runner' do
|
|
129
129
|
before do
|
130
130
|
vegas(RackApp1, 'rack_app_1', {:skip_launch => true, :sessions => true})
|
131
131
|
end
|
132
|
-
|
132
|
+
|
133
133
|
it "sets default rack handler to thin" do
|
134
134
|
@vegas.rack_handler.should == Rack::Handler::Thin
|
135
|
-
end
|
135
|
+
end
|
136
136
|
end
|
137
|
-
|
138
|
-
describe 'with a launch path specified as a proc' do
|
137
|
+
|
138
|
+
describe 'with a launch path specified as a proc' do
|
139
139
|
it 'evaluates the proc in the context of the runner' do
|
140
140
|
Vegas::Runner.any_instance.expects(:system).once.with {|s| s =~ /\?search\=blah$/ }
|
141
|
-
vegas(TestApp2,
|
142
|
-
'vegas_test_app_2',
|
143
|
-
{:launch_path => Proc.new {|r| "?search=#{r.args.first}" }},
|
141
|
+
vegas(TestApp2,
|
142
|
+
'vegas_test_app_2',
|
143
|
+
{:launch_path => Proc.new {|r| "?search=#{r.args.first}" }},
|
144
144
|
["--debug", "blah"])
|
145
145
|
@vegas.options[:launch_path].should.be instance_of(Proc)
|
146
|
-
end
|
146
|
+
end
|
147
147
|
end
|
148
|
-
|
148
|
+
|
149
149
|
describe 'with a launch path specified as string' do
|
150
150
|
it 'launches to the specific path' do
|
151
151
|
Vegas::Runner.any_instance.expects(:system).once.with {|s| s =~ /\?search\=blah$/ }
|
152
|
-
vegas(TestApp2,
|
153
|
-
'vegas_test_app_2',
|
154
|
-
{:launch_path => "?search=blah"},
|
152
|
+
vegas(TestApp2,
|
153
|
+
'vegas_test_app_2',
|
154
|
+
{:launch_path => "?search=blah"},
|
155
155
|
["--debug", "blah"])
|
156
156
|
@vegas.options[:launch_path].should == "?search=blah"
|
157
157
|
end
|
158
158
|
end
|
159
|
-
|
159
|
+
|
160
160
|
|
161
161
|
end
|
162
162
|
|
163
163
|
end
|
164
|
-
|
data/vegas.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{vegas}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.8"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Aaron Quint"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-10-11}
|
13
13
|
s.description = %q{Vegas aims to solve the simple problem of creating executable versions of Sinatra/Rack apps. It includes a class Vegas::Runner that wraps Rack/Sinatra applications and provides a simple command line interface and launching mechanism.}
|
14
14
|
s.email = ["aaron@quirkey.com"]
|
15
15
|
s.extra_rdoc_files = [
|
@@ -36,7 +36,7 @@ Gem::Specification.new do |s|
|
|
36
36
|
s.rdoc_options = ["--charset=UTF-8"]
|
37
37
|
s.require_paths = ["lib"]
|
38
38
|
s.rubyforge_project = %q{quirkey}
|
39
|
-
s.rubygems_version = %q{1.3.
|
39
|
+
s.rubygems_version = %q{1.3.7}
|
40
40
|
s.summary = %q{Vegas aims to solve the simple problem of creating executable versions of Sinatra/Rack apps.}
|
41
41
|
s.test_files = [
|
42
42
|
"test/apps.rb",
|
@@ -49,7 +49,7 @@ Gem::Specification.new do |s|
|
|
49
49
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
50
50
|
s.specification_version = 3
|
51
51
|
|
52
|
-
if Gem::Version.new(Gem::
|
52
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
53
53
|
s.add_runtime_dependency(%q<rack>, [">= 1.0.0"])
|
54
54
|
s.add_development_dependency(%q<mocha>, ["~> 0.9.8"])
|
55
55
|
s.add_development_dependency(%q<bacon>, ["~> 1.1.0"])
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 8
|
9
|
+
version: 0.1.8
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Aaron Quint
|
@@ -14,13 +14,14 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-10-11 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rack
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
24
25
|
requirements:
|
25
26
|
- - ">="
|
26
27
|
- !ruby/object:Gem::Version
|
@@ -35,6 +36,7 @@ dependencies:
|
|
35
36
|
name: mocha
|
36
37
|
prerelease: false
|
37
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
38
40
|
requirements:
|
39
41
|
- - ~>
|
40
42
|
- !ruby/object:Gem::Version
|
@@ -49,6 +51,7 @@ dependencies:
|
|
49
51
|
name: bacon
|
50
52
|
prerelease: false
|
51
53
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
52
55
|
requirements:
|
53
56
|
- - ~>
|
54
57
|
- !ruby/object:Gem::Version
|
@@ -63,6 +66,7 @@ dependencies:
|
|
63
66
|
name: sinatra
|
64
67
|
prerelease: false
|
65
68
|
requirement: &id004 !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
66
70
|
requirements:
|
67
71
|
- - ~>
|
68
72
|
- !ruby/object:Gem::Version
|
@@ -108,6 +112,7 @@ rdoc_options:
|
|
108
112
|
require_paths:
|
109
113
|
- lib
|
110
114
|
required_ruby_version: !ruby/object:Gem::Requirement
|
115
|
+
none: false
|
111
116
|
requirements:
|
112
117
|
- - ">="
|
113
118
|
- !ruby/object:Gem::Version
|
@@ -115,6 +120,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
115
120
|
- 0
|
116
121
|
version: "0"
|
117
122
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
|
+
none: false
|
118
124
|
requirements:
|
119
125
|
- - ">="
|
120
126
|
- !ruby/object:Gem::Version
|
@@ -124,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
130
|
requirements: []
|
125
131
|
|
126
132
|
rubyforge_project: quirkey
|
127
|
-
rubygems_version: 1.3.
|
133
|
+
rubygems_version: 1.3.7
|
128
134
|
signing_key:
|
129
135
|
specification_version: 3
|
130
136
|
summary: Vegas aims to solve the simple problem of creating executable versions of Sinatra/Rack apps.
|