startbrick 0.0.1
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/README.md +48 -0
- data/Rakefile +13 -0
- data/lib/startbrick/version.rb +3 -0
- data/lib/startbrick.rb +38 -0
- data/startbrick.gemspec +14 -0
- metadata +50 -0
data/README.md
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
# Startbrick
|
2
|
+
|
3
|
+
How much of your Rails dev time is utterly wasted waiting for this:
|
4
|
+
|
5
|
+
$ rails s
|
6
|
+
=> Booting WEBrick
|
7
|
+
=> Rails 3.1.1 application starting in development on http://0.0.0.0:3000
|
8
|
+
=> Call with -d to detach
|
9
|
+
=> Ctrl-C to shutdown server
|
10
|
+
|
11
|
+
to turn into this:
|
12
|
+
|
13
|
+
$ rails s
|
14
|
+
=> Booting WEBrick
|
15
|
+
=> Rails 3.1.1 application starting in development on http://0.0.0.0:3000
|
16
|
+
=> Call with -d to detach
|
17
|
+
=> Ctrl-C to shutdown server
|
18
|
+
[2011-11-01 13:22:01] INFO WEBrick 1.3.1
|
19
|
+
[2011-11-01 13:22:01] INFO ruby 1.9.2 (2011-07-09) [i686-linux]
|
20
|
+
[2011-11-01 13:22:01] INFO WEBrick::HTTPServer#start: pid=4012 port=3000
|
21
|
+
|
22
|
+
**Startbrick** is a thin wrapper gem around Rack::Handler::WEBrick that
|
23
|
+
automatically opens your Rails app in your default web browser when it's ready
|
24
|
+
to accept requests.
|
25
|
+
|
26
|
+
Install the gem with
|
27
|
+
|
28
|
+
gem install startbrick
|
29
|
+
|
30
|
+
Startbrick works with Rails 3.
|
31
|
+
|
32
|
+
To use Startbrick, just start your Rails app like this:
|
33
|
+
|
34
|
+
rails s Startbrick
|
35
|
+
|
36
|
+
|
37
|
+
## Optional .startbrick script
|
38
|
+
|
39
|
+
By default, Startbrick runs this shell command when WEBrick is ready for
|
40
|
+
requests:
|
41
|
+
|
42
|
+
open "http://#{BindAddress}:#{Port}"
|
43
|
+
|
44
|
+
You can override this by putting your own shell script in a `.startbrick` file
|
45
|
+
in your Rails root directory.
|
46
|
+
|
47
|
+
|
48
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'rake'
|
3
|
+
require 'rake/testtask'
|
4
|
+
require 'bundler'
|
5
|
+
Bundler::GemHelper.install_tasks
|
6
|
+
|
7
|
+
begin
|
8
|
+
require 'bundler/setup'
|
9
|
+
rescue LoadError
|
10
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
11
|
+
end
|
12
|
+
|
13
|
+
|
data/lib/startbrick.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'rack'
|
2
|
+
require 'rack/handler/webrick'
|
3
|
+
|
4
|
+
module Rack
|
5
|
+
module Handler
|
6
|
+
SCRIPT_FILE = '.startbrick'
|
7
|
+
|
8
|
+
class Startbrick < Rack::Handler::WEBrick
|
9
|
+
def self.run(app, options={})
|
10
|
+
|
11
|
+
options[:BindAddress] = options.delete(:Host) if options[:Host]
|
12
|
+
|
13
|
+
options[:StartCallback] = if ::File.size?(SCRIPT_FILE)
|
14
|
+
script = ::File.read(SCRIPT_FILE)
|
15
|
+
puts "Loading #{SCRIPT_FILE} script:\n\n#{script.gsub(/^/, ' ')}"
|
16
|
+
Proc.new {
|
17
|
+
puts "Executing #{SCRIPT_FILE}"
|
18
|
+
fork { `bash #{SCRIPT_FILE}` }
|
19
|
+
}
|
20
|
+
else
|
21
|
+
Proc.new {
|
22
|
+
url = "http://#{options[:BindAddress]}:#{options[:Port]}"
|
23
|
+
cmd = "open #{url}"
|
24
|
+
puts "Running '#{cmd}'"
|
25
|
+
fork { `#{cmd}` }
|
26
|
+
}
|
27
|
+
|
28
|
+
end
|
29
|
+
@server = ::WEBrick::HTTPServer.new(options)
|
30
|
+
@server.mount "/", Rack::Handler::WEBrick, app
|
31
|
+
yield @server if block_given?
|
32
|
+
@server.start
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
data/startbrick.gemspec
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), 'lib')
|
2
|
+
require 'startbrick/version'
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "startbrick"
|
6
|
+
s.description = "WEBrick wrapper"
|
7
|
+
s.files = `git ls-files`.split("\n")
|
8
|
+
s.version = Startbrick::VERSION
|
9
|
+
s.summary = s.description
|
10
|
+
s.authors = ["Daniel Choi"]
|
11
|
+
s.email = ["dhchoi@gmail.com"]
|
12
|
+
s.homepage = "https://github.com/danchoi/startbrick"
|
13
|
+
|
14
|
+
end
|
metadata
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: startbrick
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Daniel Choi
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-11-01 00:00:00.000000000Z
|
13
|
+
dependencies: []
|
14
|
+
description: WEBrick wrapper
|
15
|
+
email:
|
16
|
+
- dhchoi@gmail.com
|
17
|
+
executables: []
|
18
|
+
extensions: []
|
19
|
+
extra_rdoc_files: []
|
20
|
+
files:
|
21
|
+
- README.md
|
22
|
+
- Rakefile
|
23
|
+
- lib/startbrick.rb
|
24
|
+
- lib/startbrick/version.rb
|
25
|
+
- startbrick.gemspec
|
26
|
+
homepage: https://github.com/danchoi/startbrick
|
27
|
+
licenses: []
|
28
|
+
post_install_message:
|
29
|
+
rdoc_options: []
|
30
|
+
require_paths:
|
31
|
+
- lib
|
32
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
requirements: []
|
45
|
+
rubyforge_project:
|
46
|
+
rubygems_version: 1.8.11
|
47
|
+
signing_key:
|
48
|
+
specification_version: 3
|
49
|
+
summary: WEBrick wrapper
|
50
|
+
test_files: []
|