vegas 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +5 -1
- data/History.txt +6 -0
- data/Rakefile +35 -32
- data/lib/vegas.rb +1 -1
- data/lib/vegas/runner.rb +96 -44
- data/test/test_helper.rb +5 -1
- data/test/test_vegas_runner.rb +83 -9
- data/vegas.gemspec +11 -9
- metadata +14 -5
- data/pkg/vegas-0.1.1.gem +0 -0
data/.gitignore
CHANGED
data/History.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
== 0.1.3 2010-01-08
|
2
|
+
|
3
|
+
* Fixed: Runner escapes :app_name to make it a valid string for using in paths (thanks greatseth!)
|
4
|
+
* Fixed: Runner respects a server setting on Sinatra apps to use that specific Rack handler. (thanks greatseth!)
|
5
|
+
* New: Tested against Rack 1.1
|
6
|
+
|
1
7
|
== 0.1.2 2009-12-28
|
2
8
|
|
3
9
|
* New
|
data/Rakefile
CHANGED
@@ -1,32 +1,35 @@
|
|
1
|
-
%w[rubygems rake rake/clean rake/testtask fileutils].each { |f| require f }
|
2
|
-
require File.dirname(__FILE__) + '/lib/vegas'
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |s|
|
7
|
-
s.name = %q{vegas}
|
8
|
-
s.version = Vegas::VERSION
|
9
|
-
s.authors = ["Aaron Quint"]
|
10
|
-
s.date = %q{2009-08-30}
|
11
|
-
s.summary = "Vegas aims to solve the simple problem of creating executable versions of Sinatra/Rack apps."
|
12
|
-
s.description = %{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.}
|
13
|
-
s.email = ["aaron@quirkey.com"]
|
14
|
-
s.homepage = %q{http://code.quirkey.com/vegas}
|
15
|
-
s.rubyforge_project = %q{quirkey}
|
16
|
-
|
17
|
-
s.
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
1
|
+
%w[rubygems rake rake/clean rake/testtask fileutils].each { |f| require f }
|
2
|
+
require File.dirname(__FILE__) + '/lib/vegas'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |s|
|
7
|
+
s.name = %q{vegas}
|
8
|
+
s.version = Vegas::VERSION
|
9
|
+
s.authors = ["Aaron Quint"]
|
10
|
+
s.date = %q{2009-08-30}
|
11
|
+
s.summary = "Vegas aims to solve the simple problem of creating executable versions of Sinatra/Rack apps."
|
12
|
+
s.description = %{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.}
|
13
|
+
s.email = ["aaron@quirkey.com"]
|
14
|
+
s.homepage = %q{http://code.quirkey.com/vegas}
|
15
|
+
s.rubyforge_project = %q{quirkey}
|
16
|
+
|
17
|
+
s.add_runtime_dependency(%q<rack>, [">= 1.0.0"])
|
18
|
+
|
19
|
+
s.add_development_dependency(%q<mocha>, ["~> 0.9.8"])
|
20
|
+
s.add_development_dependency(%q<bacon>, ["~> 1.1.0"])
|
21
|
+
s.add_development_dependency(%q<sinatra>, ["~> 0.9.4"])
|
22
|
+
|
23
|
+
end
|
24
|
+
Jeweler::GemcutterTasks.new
|
25
|
+
rescue LoadError
|
26
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
27
|
+
end
|
28
|
+
|
29
|
+
Rake::TestTask.new do |t|
|
30
|
+
t.libs << "test"
|
31
|
+
t.test_files = FileList['test/test*.rb']
|
32
|
+
t.verbose = true
|
33
|
+
end
|
34
|
+
|
35
|
+
task :default => :test
|
data/lib/vegas.rb
CHANGED
data/lib/vegas/runner.rb
CHANGED
@@ -6,72 +6,81 @@ if Vegas::WINDOWS
|
|
6
6
|
begin
|
7
7
|
require 'win32/process'
|
8
8
|
rescue
|
9
|
-
puts "Sorry, in order to use Vegas on Windows you need the win32-process gem:\n
|
9
|
+
puts "Sorry, in order to use Vegas on Windows you need the win32-process gem:\n " +
|
10
|
+
"gem install win32-process"
|
10
11
|
end
|
11
12
|
end
|
12
13
|
|
13
14
|
module Vegas
|
14
15
|
class Runner
|
15
|
-
attr_reader :app, :app_name, :
|
16
|
-
|
16
|
+
attr_reader :app, :app_name, :filesystem_friendly_app_name, :quoted_app_name,
|
17
|
+
:rack_handler, :port, :host, :options, :args
|
18
|
+
|
17
19
|
ROOT_DIR = File.expand_path(File.join('~', '.vegas'))
|
18
20
|
PORT = 5678
|
19
21
|
HOST = WINDOWS ? 'localhost' : '0.0.0.0'
|
20
|
-
|
22
|
+
|
21
23
|
def initialize(app, app_name, set_options = {}, runtime_args = ARGV, &block)
|
22
|
-
|
23
|
-
|
24
|
-
@app_name = app_name
|
25
|
-
@options = set_options || {}
|
26
|
-
@runtime_args = runtime_args
|
24
|
+
@options = set_options || {}
|
25
|
+
|
27
26
|
self.class.logger.level = options[:debug] ? Logger::DEBUG : Logger::INFO
|
28
|
-
|
29
|
-
@
|
30
|
-
|
27
|
+
|
28
|
+
@app = app
|
29
|
+
@app_name = app_name
|
30
|
+
|
31
|
+
@filesystem_friendly_app_name = @app_name.gsub(/\W+/, "_")
|
32
|
+
@quoted_app_name = "'#{app_name}'"
|
33
|
+
|
34
|
+
@runtime_args = runtime_args
|
35
|
+
@rack_handler = setup_rack_handler
|
31
36
|
|
32
37
|
# load options from opt parser
|
33
38
|
@args = define_options do |opts|
|
34
39
|
if block_given?
|
35
40
|
opts.separator ''
|
36
|
-
opts.separator "#{
|
41
|
+
opts.separator "#{quoted_app_name} options:"
|
37
42
|
yield(self, opts, app)
|
38
43
|
end
|
39
44
|
end
|
40
45
|
|
41
|
-
#
|
42
|
-
if before_run = options.delete(:before_run)
|
43
|
-
before_run.is_a?(Proc)
|
46
|
+
# Handle :before_run hook
|
47
|
+
if (before_run = options.delete(:before_run)).respond_to?(:call)
|
44
48
|
before_run.call(self)
|
45
49
|
end
|
46
50
|
|
47
|
-
#
|
51
|
+
# Set app options
|
48
52
|
@host = options[:host] || HOST
|
49
|
-
|
50
|
-
|
51
|
-
|
53
|
+
|
54
|
+
if app.respond_to?(:set)
|
55
|
+
app.set(options)
|
56
|
+
app.set(:vegas, self)
|
52
57
|
end
|
53
|
-
|
58
|
+
|
59
|
+
# Make sure app dir is setup
|
54
60
|
FileUtils.mkdir_p(app_dir)
|
55
|
-
|
61
|
+
|
62
|
+
return if options[:start] == false
|
63
|
+
|
56
64
|
# evaluate the launch_path
|
57
|
-
path = if options[:launch_path]
|
65
|
+
path = if options[:launch_path].respond_to?(:call)
|
58
66
|
options[:launch_path].call(self)
|
59
67
|
else
|
60
68
|
options[:launch_path]
|
61
69
|
end
|
70
|
+
|
62
71
|
start(path)
|
63
72
|
end
|
64
73
|
|
65
74
|
def app_dir
|
66
|
-
File.join(ROOT_DIR,
|
75
|
+
File.join(ROOT_DIR, filesystem_friendly_app_name)
|
67
76
|
end
|
68
77
|
|
69
78
|
def pid_file
|
70
|
-
File.join(app_dir, "#{
|
79
|
+
File.join(app_dir, "#{filesystem_friendly_app_name}.pid")
|
71
80
|
end
|
72
81
|
|
73
82
|
def url_file
|
74
|
-
File.join(app_dir, "#{
|
83
|
+
File.join(app_dir, "#{filesystem_friendly_app_name}.url")
|
75
84
|
end
|
76
85
|
|
77
86
|
def url
|
@@ -79,39 +88,46 @@ module Vegas
|
|
79
88
|
end
|
80
89
|
|
81
90
|
def log_file
|
82
|
-
File.join(app_dir, "#{
|
91
|
+
File.join(app_dir, "#{filesystem_friendly_app_name}.log")
|
83
92
|
end
|
84
93
|
|
85
94
|
def start(path = nil)
|
86
95
|
logger.info "Running with Windows Settings" if WINDOWS
|
87
|
-
logger.info "Starting #{
|
96
|
+
logger.info "Starting #{quoted_app_name}"
|
88
97
|
begin
|
89
98
|
check_for_running(path)
|
90
99
|
find_port
|
91
100
|
write_url
|
92
101
|
launch!(url, path)
|
93
|
-
daemonize! unless options[:foreground]
|
102
|
+
daemonize! unless options[:foreground]
|
94
103
|
run!
|
95
104
|
rescue RuntimeError => e
|
96
|
-
logger.warn "There was an error starting #{
|
105
|
+
logger.warn "There was an error starting #{quoted_app_name}: #{e}"
|
97
106
|
exit
|
98
107
|
end
|
99
108
|
end
|
100
109
|
|
101
110
|
def find_port
|
102
111
|
if @port = options[:port]
|
103
|
-
|
112
|
+
announce_port_attempted
|
113
|
+
|
114
|
+
unless port_open?
|
104
115
|
logger.warn "Port #{port} is already in use. Please try another or don't use -P, for auto-port"
|
105
116
|
end
|
106
117
|
else
|
107
118
|
@port = PORT
|
108
|
-
|
109
|
-
|
119
|
+
announce_port_attempted
|
120
|
+
|
121
|
+
until port_open?
|
110
122
|
@port += 1
|
111
|
-
|
123
|
+
announce_port_attempted
|
112
124
|
end
|
113
125
|
end
|
114
126
|
end
|
127
|
+
|
128
|
+
def announce_port_attempted
|
129
|
+
logger.info "Trying to start #{quoted_app_name} on port #{port}"
|
130
|
+
end
|
115
131
|
|
116
132
|
def port_open?(check_url = nil)
|
117
133
|
begin
|
@@ -130,7 +146,7 @@ module Vegas
|
|
130
146
|
if File.exists?(pid_file) && File.exists?(url_file)
|
131
147
|
running_url = File.read(url_file)
|
132
148
|
if !port_open?(running_url)
|
133
|
-
logger.warn "#{
|
149
|
+
logger.warn "#{quoted_app_name} is already running at #{running_url}"
|
134
150
|
launch!(running_url, path)
|
135
151
|
exit!
|
136
152
|
end
|
@@ -138,11 +154,13 @@ module Vegas
|
|
138
154
|
end
|
139
155
|
|
140
156
|
def run!
|
157
|
+
logger.info "Running with Rack handler: #{@rack_handler.inspect}"
|
158
|
+
|
141
159
|
rack_handler.run app, :Host => host, :Port => port do |server|
|
142
160
|
trap(kill_command) do
|
143
161
|
## Use thins' hard #stop! if available, otherwise just #stop
|
144
162
|
server.respond_to?(:stop!) ? server.stop! : server.stop
|
145
|
-
logger.info "#{
|
163
|
+
logger.info "#{quoted_app_name} received INT ... stopping"
|
146
164
|
delete_pid!
|
147
165
|
end
|
148
166
|
end
|
@@ -185,11 +203,11 @@ module Vegas
|
|
185
203
|
|
186
204
|
def status
|
187
205
|
if File.exists?(pid_file)
|
188
|
-
logger.info "#{
|
206
|
+
logger.info "#{quoted_app_name} running"
|
189
207
|
logger.info "PID #{File.read(pid_file)}"
|
190
208
|
logger.info "URL #{File.read(url_file)}" if File.exists?(url_file)
|
191
209
|
else
|
192
|
-
logger.info "#{
|
210
|
+
logger.info "#{quoted_app_name} not running!"
|
193
211
|
end
|
194
212
|
end
|
195
213
|
|
@@ -201,11 +219,11 @@ module Vegas
|
|
201
219
|
config.sub!(/^__END__\n.*/, '')
|
202
220
|
@app.module_eval(config)
|
203
221
|
end
|
204
|
-
|
222
|
+
|
205
223
|
def self.logger=(logger)
|
206
224
|
@logger = logger
|
207
225
|
end
|
208
|
-
|
226
|
+
|
209
227
|
def self.logger
|
210
228
|
@logger ||= LOGGER if defined?(LOGGER)
|
211
229
|
if !@logger
|
@@ -219,11 +237,45 @@ module Vegas
|
|
219
237
|
def logger
|
220
238
|
self.class.logger
|
221
239
|
end
|
222
|
-
|
223
|
-
|
240
|
+
|
241
|
+
private
|
242
|
+
def setup_rack_handler
|
243
|
+
# First try to set Rack handler via a special hook we honor
|
244
|
+
@rack_handler = if @app.respond_to?(:detect_rack_handler)
|
245
|
+
@app.detect_rack_handler
|
246
|
+
|
247
|
+
# If they aren't using our hook, try to use their @app.server settings
|
248
|
+
elsif @app.respond_to?(:server) and @app.server
|
249
|
+
# If :server isn't set, it returns an array of possibilities,
|
250
|
+
# sorted from most to least preferable.
|
251
|
+
if @app.server.is_a?(Array)
|
252
|
+
handler = nil
|
253
|
+
@app.server.each do |server|
|
254
|
+
begin
|
255
|
+
handler = Rack::Handler.get(server)
|
256
|
+
break
|
257
|
+
rescue NameError => e
|
258
|
+
next
|
259
|
+
end
|
260
|
+
end
|
261
|
+
handler
|
262
|
+
|
263
|
+
# :server might be set explicitly to a single option like "mongrel"
|
264
|
+
else
|
265
|
+
Rack::Handler.get(@app.server)
|
266
|
+
end
|
267
|
+
|
268
|
+
# If all else fails, we'll use Thin
|
269
|
+
else
|
270
|
+
Rack::Handler::Thin
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
224
274
|
def define_options
|
225
275
|
OptionParser.new("", 24, ' ') do |opts|
|
226
|
-
|
276
|
+
# TODO instead of app_name, we should determine the name of the script
|
277
|
+
# used to invoke Vegas and use that here
|
278
|
+
opts.banner = "Usage: your_executable_name [options]"
|
227
279
|
|
228
280
|
opts.separator ""
|
229
281
|
opts.separator "Vegas options:"
|
@@ -278,7 +330,7 @@ module Vegas
|
|
278
330
|
|
279
331
|
opts.on_tail("--version", "Show version") do
|
280
332
|
if app.respond_to?(:version)
|
281
|
-
puts "#{
|
333
|
+
puts "#{quoted_app_name} #{app.version}"
|
282
334
|
end
|
283
335
|
puts "rack #{Rack::VERSION.join('.')}"
|
284
336
|
puts "sinatra #{Sinatra::VERSION}" if defined?(Sinatra)
|
data/test/test_helper.rb
CHANGED
data/test/test_vegas_runner.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), 'test_helper.rb')
|
2
2
|
|
3
|
-
Vegas::Runner
|
3
|
+
Vegas::Runner.class_eval do
|
4
|
+
remove_const :ROOT_DIR
|
5
|
+
ROOT_DIR = File.join(File.dirname(__FILE__), 'tmp', '.vegas')
|
6
|
+
end
|
4
7
|
|
5
8
|
describe 'Vegas::Runner' do
|
6
9
|
before do
|
@@ -9,9 +12,9 @@ describe 'Vegas::Runner' do
|
|
9
12
|
Vegas::Runner.logger = Logger.new(@log)
|
10
13
|
end
|
11
14
|
|
12
|
-
describe '
|
15
|
+
describe 'creating an instance' do
|
13
16
|
|
14
|
-
describe '
|
17
|
+
describe 'basic usage' do
|
15
18
|
before do
|
16
19
|
Vegas::Runner.any_instance.expects(:system).once
|
17
20
|
vegas(TestApp1, 'vegas_test_app_1', {:sessions => true}, ["route","--debug"])
|
@@ -24,6 +27,14 @@ describe 'Vegas::Runner' do
|
|
24
27
|
it "sets app name" do
|
25
28
|
@vegas.app_name.should == 'vegas_test_app_1'
|
26
29
|
end
|
30
|
+
|
31
|
+
it "sets quoted app name" do
|
32
|
+
@vegas.quoted_app_name.should == "'vegas_test_app_1'"
|
33
|
+
end
|
34
|
+
|
35
|
+
it "sets filesystem friendly app name" do
|
36
|
+
@vegas.filesystem_friendly_app_name.should == 'vegas_test_app_1'
|
37
|
+
end
|
27
38
|
|
28
39
|
it "stores options" do
|
29
40
|
@vegas.options[:sessions].should.be.true
|
@@ -44,24 +55,87 @@ describe 'Vegas::Runner' do
|
|
44
55
|
it "writes a url with the port" do
|
45
56
|
@vegas.url_file.should have_matching_file_content(/0.0.0.0\:#{@vegas.port}/)
|
46
57
|
end
|
58
|
+
|
59
|
+
it "knows where to find the pid file" do
|
60
|
+
@vegas.pid_file.should.equal \
|
61
|
+
File.join(@vegas.app_dir, @vegas.filesystem_friendly_app_name + ".pid")
|
62
|
+
# @vegas.pid_file.should exist_as_file
|
63
|
+
end
|
47
64
|
end
|
65
|
+
|
66
|
+
describe 'basic usage with a funky app name' do
|
67
|
+
before do
|
68
|
+
Vegas::Runner.any_instance.expects(:system).once
|
69
|
+
vegas(TestApp1, 'Funky YEAH!1!', {:sessions => true}, ["route","--debug"])
|
70
|
+
end
|
71
|
+
|
72
|
+
it "sets app" do
|
73
|
+
@vegas.app.should == TestApp1
|
74
|
+
end
|
75
|
+
|
76
|
+
it "sets app name" do
|
77
|
+
@vegas.app_name.should == 'Funky YEAH!1!'
|
78
|
+
end
|
79
|
+
|
80
|
+
it "sets quoted app name" do
|
81
|
+
@vegas.quoted_app_name.should == "'Funky YEAH!1!'"
|
82
|
+
end
|
83
|
+
|
84
|
+
it "sets filesystem friendly app name" do
|
85
|
+
@vegas.filesystem_friendly_app_name.should == 'Funky_YEAH_1_'
|
86
|
+
end
|
87
|
+
|
88
|
+
it "stores options" do
|
89
|
+
@vegas.options[:sessions].should.be.true
|
90
|
+
end
|
48
91
|
|
49
|
-
|
92
|
+
it "puts unparsed args into args" do
|
93
|
+
@vegas.args.should == ["route"]
|
94
|
+
end
|
95
|
+
|
96
|
+
it "parses options into @options" do
|
97
|
+
@vegas.options[:debug].should.be.true
|
98
|
+
end
|
99
|
+
|
100
|
+
it "writes the app dir" do
|
101
|
+
@vegas.app_dir.should exist_as_file
|
102
|
+
end
|
103
|
+
|
104
|
+
it "writes a url with the port" do
|
105
|
+
@vegas.url_file.should have_matching_file_content(/0.0.0.0\:#{@vegas.port}/)
|
106
|
+
end
|
107
|
+
|
108
|
+
it "knows where to find the pid file" do
|
109
|
+
@vegas.pid_file.should.equal \
|
110
|
+
File.join(@vegas.app_dir, @vegas.filesystem_friendly_app_name + ".pid")
|
111
|
+
# @vegas.pid_file.should exist_as_file
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
describe 'with a sinatra app using mongrel for the server' do
|
50
116
|
before do
|
51
|
-
TestApp1.
|
117
|
+
TestApp1.set :server, "mongrel"
|
52
118
|
Vegas::Runner.any_instance.expects(:system).once
|
53
119
|
Rack::Handler::Mongrel.stubs(:run)
|
54
120
|
vegas(TestApp1, 'vegas_test_app_1', {:skip_launch => true, :sessions => true}, ["route","--debug"])
|
55
121
|
end
|
56
|
-
|
122
|
+
|
57
123
|
it 'sets the rack handler automaticaly' do
|
58
124
|
@vegas.rack_handler.should == Rack::Handler::Mongrel
|
59
125
|
end
|
126
|
+
end
|
60
127
|
|
61
|
-
|
62
|
-
|
128
|
+
describe 'with a sinatra app using webrick for the server' do
|
129
|
+
before do
|
130
|
+
TestApp1.set :server, "webrick"
|
131
|
+
Vegas::Runner.any_instance.expects(:system).once
|
132
|
+
Rack::Handler::WEBrick.stubs(:run)
|
133
|
+
vegas(TestApp1, 'vegas_test_app_1', {:skip_launch => true, :sessions => true}, ["route","--debug"])
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'sets the rack handler automaticaly' do
|
137
|
+
@vegas.rack_handler.should == Rack::Handler::WEBrick
|
63
138
|
end
|
64
|
-
|
65
139
|
end
|
66
140
|
|
67
141
|
describe 'with a simple rack app' do
|
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.3"
|
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{
|
12
|
+
s.date = %q{2010-01-08}
|
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 = [
|
@@ -24,7 +24,6 @@ Gem::Specification.new do |s|
|
|
24
24
|
"Rakefile",
|
25
25
|
"lib/vegas.rb",
|
26
26
|
"lib/vegas/runner.rb",
|
27
|
-
"pkg/vegas-0.1.1.gem",
|
28
27
|
"test/apps.rb",
|
29
28
|
"test/test_app/bin/test_app",
|
30
29
|
"test/test_app/bin/test_rack_app",
|
@@ -52,17 +51,20 @@ Gem::Specification.new do |s|
|
|
52
51
|
|
53
52
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
54
53
|
s.add_runtime_dependency(%q<rack>, [">= 1.0.0"])
|
55
|
-
s.add_development_dependency(%q<
|
56
|
-
s.add_development_dependency(%q<
|
54
|
+
s.add_development_dependency(%q<mocha>, ["~> 0.9.8"])
|
55
|
+
s.add_development_dependency(%q<bacon>, ["~> 1.1.0"])
|
56
|
+
s.add_development_dependency(%q<sinatra>, ["~> 0.9.4"])
|
57
57
|
else
|
58
58
|
s.add_dependency(%q<rack>, [">= 1.0.0"])
|
59
|
-
s.add_dependency(%q<
|
60
|
-
s.add_dependency(%q<
|
59
|
+
s.add_dependency(%q<mocha>, ["~> 0.9.8"])
|
60
|
+
s.add_dependency(%q<bacon>, ["~> 1.1.0"])
|
61
|
+
s.add_dependency(%q<sinatra>, ["~> 0.9.4"])
|
61
62
|
end
|
62
63
|
else
|
63
64
|
s.add_dependency(%q<rack>, [">= 1.0.0"])
|
64
|
-
s.add_dependency(%q<
|
65
|
-
s.add_dependency(%q<
|
65
|
+
s.add_dependency(%q<mocha>, ["~> 0.9.8"])
|
66
|
+
s.add_dependency(%q<bacon>, ["~> 1.1.0"])
|
67
|
+
s.add_dependency(%q<sinatra>, ["~> 0.9.4"])
|
66
68
|
end
|
67
69
|
end
|
68
70
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vegas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Quint
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-01-08 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,13 +22,23 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 1.0.0
|
24
24
|
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: mocha
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.9.8
|
34
|
+
version:
|
25
35
|
- !ruby/object:Gem::Dependency
|
26
36
|
name: bacon
|
27
37
|
type: :development
|
28
38
|
version_requirement:
|
29
39
|
version_requirements: !ruby/object:Gem::Requirement
|
30
40
|
requirements:
|
31
|
-
- -
|
41
|
+
- - ~>
|
32
42
|
- !ruby/object:Gem::Version
|
33
43
|
version: 1.1.0
|
34
44
|
version:
|
@@ -38,7 +48,7 @@ dependencies:
|
|
38
48
|
version_requirement:
|
39
49
|
version_requirements: !ruby/object:Gem::Requirement
|
40
50
|
requirements:
|
41
|
-
- -
|
51
|
+
- - ~>
|
42
52
|
- !ruby/object:Gem::Version
|
43
53
|
version: 0.9.4
|
44
54
|
version:
|
@@ -60,7 +70,6 @@ files:
|
|
60
70
|
- Rakefile
|
61
71
|
- lib/vegas.rb
|
62
72
|
- lib/vegas/runner.rb
|
63
|
-
- pkg/vegas-0.1.1.gem
|
64
73
|
- test/apps.rb
|
65
74
|
- test/test_app/bin/test_app
|
66
75
|
- test/test_app/bin/test_rack_app
|
data/pkg/vegas-0.1.1.gem
DELETED
Binary file
|