shotgun 0.5 → 0.6
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/Rakefile +32 -31
- data/bin/shotgun +15 -4
- data/shotgun.gemspec +5 -4
- data/test/shotgun_test.rb +22 -0
- data/test/test.ru +7 -0
- metadata +6 -17
data/Rakefile
CHANGED
@@ -5,38 +5,39 @@ task :default => [:test]
|
|
5
5
|
task :spec => :test
|
6
6
|
|
7
7
|
Rake::TestTask.new(:test) do |t|
|
8
|
-
t.test_files = FileList['test
|
8
|
+
t.test_files = FileList['test/*_test.rb']
|
9
9
|
t.ruby_opts = ['-rubygems'] if defined? Gem
|
10
10
|
end
|
11
11
|
|
12
|
-
|
13
|
-
$spec = eval(File.read('shotgun.gemspec'))
|
14
|
-
|
15
|
-
def package(ext='')
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
desc 'Build packages'
|
20
|
-
task :package => %w[.gem .tar.gz].map { |
|
21
|
-
|
22
|
-
desc 'Build and install as local gem'
|
23
|
-
task :install => package('.gem') do
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
directory 'pkg/'
|
28
|
-
CLOBBER.include('pkg')
|
29
|
-
|
30
|
-
file package('.gem') => %
|
31
|
-
|
32
|
-
|
33
|
-
end
|
34
|
-
|
35
|
-
file package('.tar.gz') => %w[pkg/] + $spec.files do |f|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
12
|
+
if defined? Gem
|
13
|
+
$spec = eval(File.read('shotgun.gemspec'))
|
14
|
+
|
15
|
+
def package(ext='')
|
16
|
+
"pkg/#{$spec.name}-#{$spec.version}#{ext}"
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'Build packages'
|
20
|
+
task :package => %w[.gem .tar.gz].map { |ext| package(ext) }
|
21
|
+
|
22
|
+
desc 'Build and install as local gem'
|
23
|
+
task :install => package('.gem') do
|
24
|
+
sh "gem install #{package('.gem')}"
|
25
|
+
end
|
26
|
+
|
27
|
+
directory 'pkg/'
|
28
|
+
CLOBBER.include('pkg')
|
29
|
+
|
30
|
+
file package('.gem') => %w[pkg/ shotgun.gemspec] + $spec.files do |f|
|
31
|
+
sh "gem build shotgun.gemspec"
|
32
|
+
mv File.basename(f.name), f.name
|
33
|
+
end
|
34
|
+
|
35
|
+
file package('.tar.gz') => %w[pkg/] + $spec.files do |f|
|
36
|
+
sh <<-SH
|
37
|
+
git archive \
|
38
|
+
--prefix=shotgun-#{$spec.version}/ \
|
39
|
+
--format=tar \
|
40
|
+
HEAD | gzip > #{f.name}
|
41
|
+
SH
|
42
|
+
end
|
42
43
|
end
|
data/bin/shotgun
CHANGED
@@ -130,14 +130,25 @@ app_wrapper =
|
|
130
130
|
|
131
131
|
ENV['RACK_ENV'] = env
|
132
132
|
|
133
|
+
# use the BROWSER environment variable or fall back to a more or less standard
|
134
|
+
# set of commands
|
135
|
+
ENV['BROWSER'] ||=
|
136
|
+
%w[open xdg-open x-www-browser firefox opera mozilla netscape].find do |comm|
|
137
|
+
next if comm == 'open' && `uname` !~ /Darwin/
|
138
|
+
ENV['PATH'].split(':').any? { |dir| File.executable?("#{dir}/#{comm}") }
|
139
|
+
end
|
140
|
+
|
133
141
|
require 'shotgun'
|
134
142
|
app = Shotgun.new(config, app_wrapper)
|
135
143
|
|
144
|
+
base_url = "http://#{options[:Host]}:#{options[:Port]}"
|
145
|
+
puts "== Shotgun starting #{server.to_s} at #{base_url}"
|
136
146
|
server.run app, options do |inst|
|
137
|
-
puts "== Shotgun starting #{server.to_s} on http://#{options[:Host]}:#{options[:Port]}"
|
138
|
-
|
139
147
|
if browse
|
140
|
-
|
141
|
-
|
148
|
+
if ENV['BROWSER']
|
149
|
+
system "#{ENV['BROWSER']} '#{base_url}#{options[:Path]}'"
|
150
|
+
else
|
151
|
+
abort "BROWSER environment variable not set and no browser detected"
|
152
|
+
end
|
142
153
|
end
|
143
154
|
end
|
data/shotgun.gemspec
CHANGED
@@ -3,8 +3,8 @@ Gem::Specification.new do |s|
|
|
3
3
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
4
4
|
|
5
5
|
s.name = 'shotgun'
|
6
|
-
s.version = '0.
|
7
|
-
s.date = '2010-01-
|
6
|
+
s.version = '0.6'
|
7
|
+
s.date = '2010-01-28'
|
8
8
|
|
9
9
|
s.description = "Because reloading sucks."
|
10
10
|
s.summary = s.description
|
@@ -19,13 +19,14 @@ Gem::Specification.new do |s|
|
|
19
19
|
shotgun.gemspec
|
20
20
|
lib/shotgun.rb
|
21
21
|
bin/shotgun
|
22
|
+
test/shotgun_test.rb
|
23
|
+
test/test.ru
|
22
24
|
]
|
23
25
|
s.executables = ['shotgun']
|
24
|
-
s.test_files =
|
26
|
+
s.test_files = ['test/shotgun_test.rb']
|
25
27
|
|
26
28
|
s.extra_rdoc_files = %w[README]
|
27
29
|
s.add_dependency 'rack', '>= 0.9.1'
|
28
|
-
s.add_dependency 'launchy', '>= 0.3.3', '< 1.0'
|
29
30
|
|
30
31
|
s.homepage = "http://github.com/rtomayko/shotgun/"
|
31
32
|
s.require_paths = %w[lib]
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'rack/mock'
|
3
|
+
require 'shotgun'
|
4
|
+
|
5
|
+
class ShotgunTest < Test::Unit::TestCase
|
6
|
+
def setup
|
7
|
+
@rackup_file = "#{File.dirname(__FILE__)}/test.ru"
|
8
|
+
@shotgun = Shotgun.new(@rackup_file)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_knows_the_rackup_file
|
12
|
+
assert_equal @rackup_file, @shotgun.rackup_file
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_processes_requests
|
16
|
+
request = Rack::MockRequest.new(@shotgun)
|
17
|
+
res = request.get("/")
|
18
|
+
assert_equal 200, res.status
|
19
|
+
assert_equal "BANG!", res.body
|
20
|
+
assert_equal "text/plain", res.headers['Content-Type']
|
21
|
+
end
|
22
|
+
end
|
data/test/test.ru
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shotgun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: "0.
|
4
|
+
version: "0.6"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Tomayko
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-28 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,19 +22,6 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 0.9.1
|
24
24
|
version:
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: launchy
|
27
|
-
type: :runtime
|
28
|
-
version_requirement:
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 0.3.3
|
34
|
-
- - <
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: "1.0"
|
37
|
-
version:
|
38
25
|
description: Because reloading sucks.
|
39
26
|
email: r@tomayko.com
|
40
27
|
executables:
|
@@ -50,6 +37,8 @@ files:
|
|
50
37
|
- shotgun.gemspec
|
51
38
|
- lib/shotgun.rb
|
52
39
|
- bin/shotgun
|
40
|
+
- test/shotgun_test.rb
|
41
|
+
- test/test.ru
|
53
42
|
has_rdoc: true
|
54
43
|
homepage: http://github.com/rtomayko/shotgun/
|
55
44
|
licenses: []
|
@@ -78,5 +67,5 @@ rubygems_version: 1.3.5
|
|
78
67
|
signing_key:
|
79
68
|
specification_version: 2
|
80
69
|
summary: Because reloading sucks.
|
81
|
-
test_files:
|
82
|
-
|
70
|
+
test_files:
|
71
|
+
- test/shotgun_test.rb
|