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 CHANGED
@@ -1 +1,5 @@
1
-
1
+ .DS_Store
2
+ test/tmp
3
+ pkg/*
4
+ _layouts
5
+ *.sw?
@@ -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
- s.add_runtime_dependency(%q<rack>, [">= 1.0.0"])
17
- s.add_development_dependency(%q<bacon>, [">= 1.1.0"])
18
- s.add_development_dependency(%q<sinatra>, [">= 0.9.4"])
19
-
20
- end
21
- Jeweler::GemcutterTasks.new
22
- rescue LoadError
23
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
24
- end
25
-
26
- Rake::TestTask.new do |t|
27
- t.libs << "test"
28
- t.test_files = FileList['test/test*.rb']
29
- t.verbose = true
30
- end
31
-
32
- Dir['tasks/**/*.rake'].each { |t| load t }
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
@@ -8,7 +8,7 @@ end
8
8
  $LOAD_PATH.unshift File.dirname(__FILE__)
9
9
 
10
10
  module Vegas
11
- VERSION = "0.1.2"
11
+ VERSION = "0.1.3"
12
12
  WINDOWS = !!(RUBY_PLATFORM =~ /(mingw|bccwin|wince|mswin32)/i)
13
13
 
14
14
  autoload :Runner, 'vegas/runner'
@@ -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 gem install win32-process"
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, :rack_handler, :port, :host, :options, :args
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
- # initialize
23
- @app = app
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
- @rack_handler = @app.respond_to?(:detect_rack_handler) ?
30
- @app.send(:detect_rack_handler) : Rack::Handler.get('thin')
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 "#{app_name} options:"
41
+ opts.separator "#{quoted_app_name} options:"
37
42
  yield(self, opts, app)
38
43
  end
39
44
  end
40
45
 
41
- # Call before run if before_run is a Proc
42
- if before_run = options.delete(:before_run) and
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
- # set app options
51
+ # Set app options
48
52
  @host = options[:host] || HOST
49
- if @app.respond_to?(:set)
50
- @app.set(options)
51
- @app.set(:vegas, self)
53
+
54
+ if app.respond_to?(:set)
55
+ app.set(options)
56
+ app.set(:vegas, self)
52
57
  end
53
- # initialize app dir
58
+
59
+ # Make sure app dir is setup
54
60
  FileUtils.mkdir_p(app_dir)
55
- return if options[:start] === false
61
+
62
+ return if options[:start] == false
63
+
56
64
  # evaluate the launch_path
57
- path = if options[:launch_path] && options[:launch_path].respond_to?(:call)
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, app_name)
75
+ File.join(ROOT_DIR, filesystem_friendly_app_name)
67
76
  end
68
77
 
69
78
  def pid_file
70
- File.join(app_dir, "#{app_name}.pid")
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, "#{app_name}.url")
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, "#{app_name}.log")
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 #{app_name}"
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 #{app_name}: #{e}"
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
- if !port_open?
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
- logger.info "Trying to start #{app_name} on Port #{port}"
109
- while !port_open?
119
+ announce_port_attempted
120
+
121
+ until port_open?
110
122
  @port += 1
111
- logger.info "Trying to start #{app_name} on Port #{port}"
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 "#{app_name} is already running at #{running_url}"
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 "#{app_name} received INT ... stopping"
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 "#{app_name} running"
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 "#{app_name} not running!"
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
- private
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
- opts.banner = "Usage: #{app_name} [options]"
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 "#{app_name} #{app.version}"
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)
@@ -48,4 +48,8 @@ module TestHelper
48
48
 
49
49
  end
50
50
 
51
- Bacon::Context.send(:include, TestHelper)
51
+ module Bacon
52
+ summary_on_exit
53
+ # extend TestUnitOutput
54
+ class Context; include TestHelper; end
55
+ end
@@ -1,6 +1,9 @@
1
1
  require File.join(File.dirname(__FILE__), 'test_helper.rb')
2
2
 
3
- Vegas::Runner::ROOT_DIR = File.join(File.dirname(__FILE__), 'tmp', '.vegas')
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 '.new' do
15
+ describe 'creating an instance' do
13
16
 
14
- describe 'with basic usage' do
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
- describe 'with a sinatra app' do
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.expects(:detect_rack_handler).returns(Rack::Handler::Mongrel)
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
- it "sets options on the app" do
62
- @vegas.app.sessions.should.be.true
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
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{vegas}
8
- s.version = "0.1.2"
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{2009-12-28}
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<bacon>, [">= 1.1.0"])
56
- s.add_development_dependency(%q<sinatra>, [">= 0.9.4"])
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<bacon>, [">= 1.1.0"])
60
- s.add_dependency(%q<sinatra>, [">= 0.9.4"])
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<bacon>, [">= 1.1.0"])
65
- s.add_dependency(%q<sinatra>, [">= 0.9.4"])
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.2
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: 2009-12-28 00:00:00 -05:00
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
Binary file