brisk 0.1.0
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.
- checksums.yaml +7 -0
- data/bin/brisk +5 -0
- data/lib/brisk.rb +54 -0
- data/lib/brisk/configuration.rb +46 -0
- data/lib/brisk/constants.rb +3 -0
- data/lib/brisk/dnsmasq.rb +52 -0
- data/lib/brisk/rerun.rb +19 -0
- data/lib/brisk/server/brisk_request_helper.rb +21 -0
- data/lib/brisk/server/config.ru +5 -0
- data/lib/brisk/server/pid.rb +18 -0
- data/lib/brisk/server/proxy.rb +63 -0
- data/lib/brisk/server/server.rb +36 -0
- data/lib/brisk/server/server_middleware.rb +31 -0
- data/lib/brisk/server/site.rb +17 -0
- data/lib/brisk/thin.rb +40 -0
- data/lib/brisk/version.rb +3 -0
- data/stubs/daemon.plist +23 -0
- metadata +146 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7fda12aee0efddd813bc88c4569ffe04cc38e9db
|
4
|
+
data.tar.gz: fb8e0e72095b7af45f7b5265fc345edf5ada054e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0683d83026e1b2f5ee3396e3ac28c5c833eb05763e0b1222e3c811807c26ca9977df895c275ffd4e0b7b66022c8c60c8f069477c09c1abbbbe4eba5df172d8c6
|
7
|
+
data.tar.gz: 3d41ccf08b7112a259d60cc9098dd3bf12c0ec5b5cf6a17cfae259adaa4edca71bc8e4c091f531e869f0337d181b4546c46fe74276cc1fd1a6a4824f0248d791
|
data/bin/brisk
ADDED
data/lib/brisk.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'brisk/configuration'
|
3
|
+
require 'brisk/thin'
|
4
|
+
require 'brisk/dnsmasq'
|
5
|
+
require 'brisk/rerun'
|
6
|
+
require 'brisk/constants'
|
7
|
+
require 'brisk/server/server'
|
8
|
+
|
9
|
+
class Valet < Thor
|
10
|
+
|
11
|
+
desc "install", "install Valet"
|
12
|
+
def install
|
13
|
+
Thin.install
|
14
|
+
Configuration.install
|
15
|
+
DnsMasq.install
|
16
|
+
Rerun.install
|
17
|
+
Thin.restart
|
18
|
+
puts "Ruby Valet installed Successfully. Start adding directories by using brisk set".colorize(:green)
|
19
|
+
end
|
20
|
+
|
21
|
+
desc "set", "Set directory"
|
22
|
+
def set
|
23
|
+
Configuration.add_path(Dir.pwd)
|
24
|
+
puts "Successfully added directory".colorize(:green)
|
25
|
+
end
|
26
|
+
|
27
|
+
desc "unset", "Unset directory"
|
28
|
+
def unset
|
29
|
+
Configuration.remove_path(Dir.pwd)
|
30
|
+
puts "Successfully removed directory".colorize(:green)
|
31
|
+
end
|
32
|
+
|
33
|
+
desc "kill", "Kill web server"
|
34
|
+
def kill
|
35
|
+
Server.kill(Constants::VALET_HOME)
|
36
|
+
end
|
37
|
+
|
38
|
+
desc "stop", "Stops the server"
|
39
|
+
def stop
|
40
|
+
Thin.stop
|
41
|
+
end
|
42
|
+
|
43
|
+
desc "start", "Starts the server"
|
44
|
+
def start
|
45
|
+
Thin.stop
|
46
|
+
end
|
47
|
+
|
48
|
+
desc "restart", "Restarts the server"
|
49
|
+
def restart
|
50
|
+
Thin.restart
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
Valet.start(ARGV)
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'brisk/constants'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
class Configuration
|
6
|
+
include Constants
|
7
|
+
def self.install
|
8
|
+
unless File.directory?(directory = Constants::VALET_HOME)
|
9
|
+
FileUtils.mkdir_p(directory, :mode => 0755)
|
10
|
+
end
|
11
|
+
|
12
|
+
unless File.directory?(drivers_directory = Constants::VALET_HOME + '/Drivers')
|
13
|
+
FileUtils.mkdir_p(drivers_directory, :mode => 0755)
|
14
|
+
end
|
15
|
+
|
16
|
+
unless File.directory?(path)
|
17
|
+
write({:domain => 'dev', 'paths' => []})
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.add_path(path)
|
22
|
+
config = read
|
23
|
+
config['paths'].push(path)
|
24
|
+
write(config)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.remove_path(path)
|
28
|
+
config = read
|
29
|
+
config['paths'].delete_if {|i| i == path}
|
30
|
+
write(config)
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.path
|
34
|
+
return Constants::VALET_HOME + '/config.json'
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.read
|
38
|
+
JSON.parse(File.read(path))
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.write(config)
|
42
|
+
File.open(path, "w+") do |f|
|
43
|
+
f.write(config.to_json)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'colorize'
|
2
|
+
|
3
|
+
class DnsMasq
|
4
|
+
|
5
|
+
def self.install
|
6
|
+
unless is_installed?
|
7
|
+
puts "Installing DnsMasq...".colorize(:green)
|
8
|
+
download
|
9
|
+
end
|
10
|
+
|
11
|
+
create_custom_configuration
|
12
|
+
|
13
|
+
create_resolver
|
14
|
+
|
15
|
+
system "brew services restart dnsmasq > /dev/null"
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.is_installed?
|
19
|
+
system "brew list | grep dnsmasq >> /dev/null"
|
20
|
+
|
21
|
+
$? == 0
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.download
|
25
|
+
system "sudo -u #{ENV['SUDO_USER']} brew install dnsmasq"
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.create_custom_configuration
|
29
|
+
dnsmasq_path = "/Users/#{ENV['SUDO_USER']}/.brisk/dnsmasq.conf"
|
30
|
+
|
31
|
+
unless File.file?('/usr/local/etc/dnsmasq.conf')
|
32
|
+
FileUtils.copy('/usr/local/opt/dnsmasq/dnsmasq.conf.example','/usr/local/etc/dnsmasq.conf')
|
33
|
+
end
|
34
|
+
|
35
|
+
if File.read('/usr/local/etc/dnsmasq.conf').index(dnsmasq_path) == nil
|
36
|
+
File.open('/usr/local/etc/dnsmasq.conf', 'a') { |f| f.puts "conf-file=" + dnsmasq_path }
|
37
|
+
end
|
38
|
+
|
39
|
+
File.write(dnsmasq_path, 'address=/.dev/127.0.0.1')
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.create_resolver
|
43
|
+
unless File.directory?('/etc/resolver')
|
44
|
+
FileUtils.mkdir_p('/etc/resolver')
|
45
|
+
end
|
46
|
+
|
47
|
+
# File.write('etc/resolver/dev', 'nameserver 127.0.0.1')
|
48
|
+
File.open('/etc/resolver/dev', 'w+') do |f|
|
49
|
+
f.write('nameserver 127.0.0.1')
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/lib/brisk/rerun.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
class Rerun
|
2
|
+
|
3
|
+
def self.install
|
4
|
+
unless is_installed?
|
5
|
+
puts "Installing rerun...".colorize(:green)
|
6
|
+
download
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.is_installed?
|
11
|
+
system "gem list -i rerun > /dev/null"
|
12
|
+
|
13
|
+
$? == 0
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.download
|
17
|
+
system "gem install rerun >> /dev/null"
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class BriskRequestHelper
|
2
|
+
|
3
|
+
def initialize(env)
|
4
|
+
@env = env
|
5
|
+
@request = Rack::Request.new(env)
|
6
|
+
end
|
7
|
+
|
8
|
+
def get_site
|
9
|
+
@request.host[0..-5]
|
10
|
+
end
|
11
|
+
|
12
|
+
def valet_home_path
|
13
|
+
uid = File.stat(__FILE__).uid
|
14
|
+
home_dir = Etc.getpwuid(uid).dir
|
15
|
+
home_dir + "/.brisk"
|
16
|
+
end
|
17
|
+
|
18
|
+
def get_config
|
19
|
+
config = JSON.parse(File.read(valet_home_path + '/config.json'))
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class Pid
|
2
|
+
|
3
|
+
def self.write(path, pid)
|
4
|
+
File.open("#{path}/pid.txt", 'w') do |f|
|
5
|
+
f.write(pid)
|
6
|
+
end
|
7
|
+
|
8
|
+
sleep(1)
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.read(path)
|
12
|
+
File.read("#{path}/tmp/pids/thin.pid")
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.exists?(path)
|
16
|
+
File.file?("#{path}/tmp/pids/thin.pid")
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'rack-proxy'
|
2
|
+
require 'etc'
|
3
|
+
require 'json'
|
4
|
+
require 'brisk/server/server_middleware'
|
5
|
+
require 'brisk/server/brisk_request_helper'
|
6
|
+
require 'brisk/server/server'
|
7
|
+
require 'brisk/server/site'
|
8
|
+
require 'brisk/server/pid'
|
9
|
+
|
10
|
+
class AppProxy < Rack::Proxy
|
11
|
+
|
12
|
+
|
13
|
+
def rewrite_env(env)
|
14
|
+
# Get all the necessary info
|
15
|
+
request = BriskRequestHelper.new env
|
16
|
+
site = request.get_site
|
17
|
+
valet_home_path = request.valet_home_path
|
18
|
+
|
19
|
+
# Kill existing servers, so we don't get conflitcs
|
20
|
+
if Server.is_running(valet_home_path)
|
21
|
+
|
22
|
+
if Site.read_site(valet_home_path) == site
|
23
|
+
env["HTTP_HOST"] = "localhost:3000"
|
24
|
+
return env
|
25
|
+
end
|
26
|
+
|
27
|
+
existing_pid = Server.read(valet_home_path)
|
28
|
+
Server.shutdown(existing_pid)
|
29
|
+
end
|
30
|
+
|
31
|
+
config = request.get_config
|
32
|
+
|
33
|
+
valet_site_path = nil
|
34
|
+
|
35
|
+
# Check if we can find a folder based on the URL
|
36
|
+
config['paths'].each do |path|
|
37
|
+
if File.directory?("/#{path}/#{site}")
|
38
|
+
if File.file?("/#{path}/#{site}/config.ru")
|
39
|
+
valet_site_path = "/#{path}/#{site}"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# Boot up the server
|
45
|
+
Server.start(valet_site_path)
|
46
|
+
|
47
|
+
started = Server.is_started(valet_site_path)
|
48
|
+
|
49
|
+
# Write the pid to a file so we can delete it later on
|
50
|
+
if started
|
51
|
+
pid = Pid.read(valet_site_path)
|
52
|
+
Pid.write(valet_home_path, pid)
|
53
|
+
Site.write_site(valet_home_path, site)
|
54
|
+
end
|
55
|
+
|
56
|
+
sleep(2)
|
57
|
+
|
58
|
+
# # Set the host to the server we just started
|
59
|
+
env["HTTP_HOST"] = "localhost:3000"
|
60
|
+
|
61
|
+
env
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'brisk/server/pid'
|
2
|
+
|
3
|
+
class Server
|
4
|
+
|
5
|
+
def self.is_running(path)
|
6
|
+
File.file?("#{path}/pid.txt")
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.read(path)
|
10
|
+
File.read("#{path}/pid.txt")
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.kill(path)
|
14
|
+
if is_running(path)
|
15
|
+
pid = read path
|
16
|
+
shutdown pid
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.start(path)
|
21
|
+
spawn "cd #{path} && /usr/local/bin/rerun \"/usr/local/bin/thin -d -R config.ru -a localhost -p 3000 start\""
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.is_started(path, counter = 0)
|
25
|
+
sleep(1)
|
26
|
+
if Pid.exists?(path)
|
27
|
+
return true
|
28
|
+
end
|
29
|
+
|
30
|
+
is_started(path, counter + 1)
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.shutdown(pid)
|
34
|
+
system "sudo kill -9 #{pid}"
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'brisk/server/brisk_request_helper'
|
2
|
+
|
3
|
+
class ServerMiddleware
|
4
|
+
def initialize(app)
|
5
|
+
@app = app
|
6
|
+
end
|
7
|
+
|
8
|
+
def call(env)
|
9
|
+
request = BriskRequestHelper.new env
|
10
|
+
site = request.get_site
|
11
|
+
valet_home_path = request.valet_home_path
|
12
|
+
|
13
|
+
config = request.get_config
|
14
|
+
|
15
|
+
valet_site_path = nil
|
16
|
+
|
17
|
+
config['paths'].each do |path|
|
18
|
+
if File.directory?("/#{path}/#{site}")
|
19
|
+
if File.file?("/#{path}/#{site}/config.ru")
|
20
|
+
valet_site_path = "/#{path}/#{site}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
if valet_site_path.nil?
|
26
|
+
return [404, {}, ['Not found']]
|
27
|
+
end
|
28
|
+
|
29
|
+
@app.call(env)
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class Site
|
2
|
+
def self.write_site(path, site)
|
3
|
+
File.open("#{path}/site.txt", "w+") do |f|
|
4
|
+
f.write(site)
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.read_site(path)
|
9
|
+
if site_file_exists?(path)
|
10
|
+
return File.read("#{path}/site.txt")
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.site_file_exists?(path)
|
15
|
+
File.file?("#{path}/site.txt")
|
16
|
+
end
|
17
|
+
end
|
data/lib/brisk/thin.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'colorize'
|
2
|
+
|
3
|
+
class Thin
|
4
|
+
|
5
|
+
def self.install
|
6
|
+
unless system "gem list -i thin > /dev/null"
|
7
|
+
system "gem install thin > /dev/null"
|
8
|
+
|
9
|
+
if $? == 0
|
10
|
+
puts "Successfuly installed thin".colorize(:green)
|
11
|
+
else
|
12
|
+
puts "Something went wrong while installing thin. The process gets stopped".colorize(:red)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
path = File.expand_path("../../stubs/daemon.plist", __dir__)
|
17
|
+
server = File.expand_path("server/config.ru", __dir__)
|
18
|
+
|
19
|
+
file = File.read(path)
|
20
|
+
|
21
|
+
new_file = file.gsub("SERVER_PATH", server)
|
22
|
+
File.open("/Library/LaunchDaemons/com.frankleef.briskServer.plist", "w+") do |file|
|
23
|
+
file.write(new_file)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.restart
|
28
|
+
stop
|
29
|
+
|
30
|
+
start
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.start
|
34
|
+
system "launchctl load /Library/LaunchDaemons/com.frankleef.briskServer.plist > /dev/null"
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.stop
|
38
|
+
system "launchctl unload /Library/LaunchDaemons/com.frankleef.briskServer.plist > /dev/null"
|
39
|
+
end
|
40
|
+
end
|
data/stubs/daemon.plist
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>Label</key>
|
6
|
+
<string>com.frankleef.rubyValetServer</string>
|
7
|
+
<key>ProgramArguments</key>
|
8
|
+
<array>
|
9
|
+
<string>/usr/local/bin/thin</string>
|
10
|
+
<string>start</string>
|
11
|
+
<string>-R</string>
|
12
|
+
<string>SERVER_PATH</string>
|
13
|
+
<string>-p</string>
|
14
|
+
<string>80</string>
|
15
|
+
</array>
|
16
|
+
<key>RunAtLoad</key>
|
17
|
+
<true/>
|
18
|
+
<key>StandardOutput</key>
|
19
|
+
<string>/tmp/com.frankleef.briskServer.out</string>
|
20
|
+
<key>StandardErrorPath</key>
|
21
|
+
<string>/tmp/com.frankleef.briskServer.err</string>
|
22
|
+
</dict>
|
23
|
+
</plist>
|
metadata
ADDED
@@ -0,0 +1,146 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: brisk
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Frank
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-05-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.11'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.11'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: thor
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.19.1
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.19.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: colorize
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.7.7
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.7.7
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rack-proxy
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.5.17
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.5.17
|
97
|
+
description: A simple gem that maps all folder to a *.dev url
|
98
|
+
email:
|
99
|
+
- fr.levering@gmail.com
|
100
|
+
executables:
|
101
|
+
- brisk
|
102
|
+
extensions: []
|
103
|
+
extra_rdoc_files: []
|
104
|
+
files:
|
105
|
+
- bin/brisk
|
106
|
+
- lib/brisk.rb
|
107
|
+
- lib/brisk/configuration.rb
|
108
|
+
- lib/brisk/constants.rb
|
109
|
+
- lib/brisk/dnsmasq.rb
|
110
|
+
- lib/brisk/rerun.rb
|
111
|
+
- lib/brisk/server/brisk_request_helper.rb
|
112
|
+
- lib/brisk/server/config.ru
|
113
|
+
- lib/brisk/server/pid.rb
|
114
|
+
- lib/brisk/server/proxy.rb
|
115
|
+
- lib/brisk/server/server.rb
|
116
|
+
- lib/brisk/server/server_middleware.rb
|
117
|
+
- lib/brisk/server/site.rb
|
118
|
+
- lib/brisk/thin.rb
|
119
|
+
- lib/brisk/version.rb
|
120
|
+
- stubs/daemon.plist
|
121
|
+
homepage: https://www.github.com/frankieleef/brisk
|
122
|
+
licenses:
|
123
|
+
- MIT
|
124
|
+
metadata:
|
125
|
+
allowed_push_host: https://rubygems.org
|
126
|
+
post_install_message:
|
127
|
+
rdoc_options: []
|
128
|
+
require_paths:
|
129
|
+
- lib
|
130
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
131
|
+
requirements:
|
132
|
+
- - ">="
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
135
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
requirements: []
|
141
|
+
rubyforge_project:
|
142
|
+
rubygems_version: 2.4.5
|
143
|
+
signing_key:
|
144
|
+
specification_version: 4
|
145
|
+
summary: Brisk
|
146
|
+
test_files: []
|