garlando 0.0.1 → 0.0.2
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 +4 -4
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/garlando.gemspec +1 -1
- data/lib/garlando.rb +39 -18
- data/lib/garlando/version.rb +1 -1
- data/spec/garlando_spec.rb +37 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7caf226a549137d06499593a0fc968acca5aaa68
|
4
|
+
data.tar.gz: 3be821e59ccd449cd81c43aed644bd920522ce28
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49a6825840e4cfd913829325a518f6451c64c91de9d09fb58fc23fed89755dbdfcfa353e6f7223b29f6c944df8e6ad08312f36107eeafda03fbd2d77b82c37ea
|
7
|
+
data.tar.gz: 1c07f8f67e3f5503719a87b4fa5a662f1bb142bc3cf4adba047c43e05d62ed42fff98cd48134f2b687ef612ee42316fdac1a56c17952599c1ef091502fa76529
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -22,7 +22,7 @@ TODO: Write usage instructions here
|
|
22
22
|
|
23
23
|
## Contributing
|
24
24
|
|
25
|
-
1. Fork it ( http://github.com
|
25
|
+
1. Fork it ( http://github.com/miyucy/garlando/fork )
|
26
26
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
27
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
28
|
4. Push to the branch (`git push origin my-new-feature`)
|
data/garlando.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["fistfvck@gmail.com"]
|
11
11
|
spec.summary = %q{asset server}
|
12
12
|
spec.description = %q{asset server}
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.homepage = "https://github.com/miyucy/garlando"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
data/lib/garlando.rb
CHANGED
@@ -6,12 +6,13 @@ module Garlando
|
|
6
6
|
class Server
|
7
7
|
COMMANDS = %i[start restart stop status]
|
8
8
|
OPTIONS = {
|
9
|
-
|
9
|
+
env: 'development',
|
10
10
|
host: '0.0.0.0',
|
11
|
+
log: 'log/garlando.log',
|
12
|
+
pid: 'tmp/pids/garlando.pid',
|
11
13
|
port: 65501,
|
12
|
-
pid: 'tmp/pids/asset_server.pid',
|
13
|
-
env: 'development',
|
14
14
|
pwd: Dir.pwd,
|
15
|
+
server: 'thin',
|
15
16
|
}
|
16
17
|
|
17
18
|
def initialize(options={})
|
@@ -24,7 +25,7 @@ module Garlando
|
|
24
25
|
end
|
25
26
|
|
26
27
|
def start
|
27
|
-
abort 'server is already running?' if
|
28
|
+
abort 'server is already running?' if running?
|
28
29
|
abort "File could not found (#{env_path})" unless File.exists?(env_path)
|
29
30
|
|
30
31
|
Process.daemon nochdir = true
|
@@ -32,37 +33,36 @@ module Garlando
|
|
32
33
|
File.write pid_path, Process.pid.to_s
|
33
34
|
at_exit { File.unlink pid_path }
|
34
35
|
|
36
|
+
reopen
|
37
|
+
|
35
38
|
ENV['RACK_ENV'] = @options[:env]
|
36
39
|
require env_path
|
37
40
|
|
38
|
-
|
39
|
-
srv = Rack::Handler.pick @options[:server]
|
40
|
-
srv.run app, Host: @options[:host], Port: @options[:port]
|
41
|
+
server.run application, Host: @options[:host], Port: @options[:port]
|
41
42
|
end
|
42
43
|
|
43
|
-
def stop
|
44
|
-
unless
|
45
|
-
return unless aborting
|
46
|
-
abort 'server is not running'
|
47
|
-
end
|
44
|
+
def stop
|
45
|
+
return abort 'server is not running' unless running?
|
48
46
|
|
49
47
|
pid = File.read(pid_path).to_i
|
50
48
|
Timeout.timeout(10) do
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
49
|
+
begin
|
50
|
+
while running?
|
51
|
+
Process.kill :INT, pid
|
52
|
+
sleep 0.5
|
53
|
+
end
|
54
|
+
rescue Errno::ESRCH
|
55
55
|
end
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
59
|
def restart
|
60
|
-
stop
|
60
|
+
stop if running?
|
61
61
|
start
|
62
62
|
end
|
63
63
|
|
64
64
|
def status
|
65
|
-
if
|
65
|
+
if running?
|
66
66
|
puts "server is running (#{File.read pid_path})"
|
67
67
|
else
|
68
68
|
puts 'server is not running'
|
@@ -71,6 +71,10 @@ module Garlando
|
|
71
71
|
|
72
72
|
private
|
73
73
|
|
74
|
+
def running?
|
75
|
+
File.exists? pid_path
|
76
|
+
end
|
77
|
+
|
74
78
|
def pid_path
|
75
79
|
File.join @options[:pwd], @options[:pid]
|
76
80
|
end
|
@@ -78,6 +82,23 @@ module Garlando
|
|
78
82
|
def env_path
|
79
83
|
File.join @options[:pwd], 'config/environment.rb'
|
80
84
|
end
|
85
|
+
|
86
|
+
def reopen
|
87
|
+
file = File.open File.join(@options[:pwd], @options[:log]), 'w+'
|
88
|
+
[STDOUT, STDERR].each { |e| e.reopen file }
|
89
|
+
end
|
90
|
+
|
91
|
+
def server
|
92
|
+
Rack::Handler.get @options[:server]
|
93
|
+
end
|
94
|
+
|
95
|
+
def application
|
96
|
+
Rack::URLMap.new rails.config.assets[:prefix] => rails.assets
|
97
|
+
end
|
98
|
+
|
99
|
+
def rails
|
100
|
+
Rails.application
|
101
|
+
end
|
81
102
|
end
|
82
103
|
|
83
104
|
class CLI
|
data/lib/garlando/version.rb
CHANGED
data/spec/garlando_spec.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'tempfile'
|
2
3
|
|
3
4
|
describe Garlando::CLI do
|
4
5
|
let(:cli) { Garlando::CLI.new }
|
@@ -18,16 +19,15 @@ describe Garlando::CLI do
|
|
18
19
|
end
|
19
20
|
|
20
21
|
describe '#perform' do
|
22
|
+
before { Garlando::Server.any_instance.stub(:call) }
|
23
|
+
|
21
24
|
it 'default command' do
|
22
|
-
Garlando::Server.any_instance.stub(:call)
|
23
|
-
# Garlando::Server.stub(new: true)
|
24
25
|
cli.perform %w[]
|
25
26
|
|
26
27
|
allow_any_instance_of(Garlando::Server).to receive(:call).with(:restart)
|
27
28
|
end
|
28
29
|
|
29
30
|
it 'send command' do
|
30
|
-
Garlando::Server.any_instance.stub(:call)
|
31
31
|
cli.perform %w[foo]
|
32
32
|
|
33
33
|
allow_any_instance_of(Garlando::Server).to receive(:call).with(:foo)
|
@@ -66,4 +66,38 @@ describe Garlando::Server do
|
|
66
66
|
allow(server).to receive(:start)
|
67
67
|
end
|
68
68
|
end
|
69
|
+
|
70
|
+
describe '#stop' do
|
71
|
+
context 'When server is not running' do
|
72
|
+
before { server.stub running?: false, abort: nil }
|
73
|
+
|
74
|
+
it 'return immediate' do
|
75
|
+
server.stop
|
76
|
+
|
77
|
+
allow(server).to receive(:abort).with('server is not running')
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context 'When server is running' do
|
82
|
+
let(:pid) { 1234567890 }
|
83
|
+
|
84
|
+
before do
|
85
|
+
@temp = Tempfile.new 'garlando'
|
86
|
+
@temp.write pid
|
87
|
+
@temp.flush
|
88
|
+
|
89
|
+
server.stub pid_path: @temp.path
|
90
|
+
|
91
|
+
Process.stub(:kill) { raise Errno::ESRCH }
|
92
|
+
end
|
93
|
+
|
94
|
+
after { @temp.close }
|
95
|
+
|
96
|
+
it 'send SIGINT to server' do
|
97
|
+
server.stop
|
98
|
+
|
99
|
+
allow(Process).to receive(:kill).with(:INT, pid)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
69
103
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: garlando
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- miyucy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -43,7 +43,7 @@ files:
|
|
43
43
|
- lib/garlando/version.rb
|
44
44
|
- spec/garlando_spec.rb
|
45
45
|
- spec/spec_helper.rb
|
46
|
-
homepage:
|
46
|
+
homepage: https://github.com/miyucy/garlando
|
47
47
|
licenses:
|
48
48
|
- MIT
|
49
49
|
metadata: {}
|