ost-bin 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3 @@
1
+ 0.0.3 - 2012-07-05
2
+
3
+ * Fix graceful handling of `SIGTERM`.
data/bin/ost CHANGED
@@ -1,9 +1,16 @@
1
1
  #! /usr/bin/env ruby
2
2
 
3
- trap(:INT) do
4
- Ost.stop if defined?(Ost)
3
+ stop = proc do
4
+ if defined?(Ost)
5
+ Ost.stop
6
+ else
7
+ exit 0
8
+ end
5
9
  end
6
10
 
11
+ trap(:INT, &stop)
12
+ trap(:TERM, &stop)
13
+
7
14
  require "clap"
8
15
  require "ost"
9
16
 
@@ -0,0 +1,5 @@
1
+ require "ost"
2
+
3
+ module Ost::Bin
4
+ VERSION = "0.0.3"
5
+ end
@@ -1,6 +1,8 @@
1
+ require File.expand_path("lib/ost-bin/version", File.dirname(__FILE__))
2
+
1
3
  Gem::Specification.new do |s|
2
4
  s.name = "ost-bin"
3
- s.version = "0.0.2"
5
+ s.version = Ost::Bin::VERSION
4
6
  s.summary = "ost(1)"
5
7
  s.authors = ["Damian Janowski"]
6
8
  s.email = ["damian.janowski@gmail.com"]
@@ -73,3 +73,32 @@ test "daemonizes" do
73
73
 
74
74
  assert !File.exist?(pid_path)
75
75
  end
76
+
77
+ test "gracefully handles TERM signals" do
78
+ r, w = IO.pipe
79
+ pid, detached_pid = nil
80
+
81
+ redis.flushdb
82
+
83
+ pid_path = "./test/workers/slow.pid"
84
+
85
+ begin
86
+ redis.rpush("ost:slow", 5)
87
+
88
+ pid = spawn("#{root("bin/ost")} -d slow", out: w, chdir: "test")
89
+
90
+ until File.exist?(pid_path)
91
+ sleep 0.5
92
+ end
93
+
94
+ detached_pid = File.read(pid_path).to_i
95
+
96
+ Process.kill(:TERM, detached_pid)
97
+ ensure
98
+ Process.kill(:INT, pid)
99
+ end
100
+
101
+ wait_for_pid(detached_pid)
102
+
103
+ assert_equal "5", redis.get("slow")
104
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ost-bin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-28 00:00:00.000000000 -03:00
13
- default_executable:
12
+ date: 2012-07-05 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: ost
17
- requirement: &2156982560 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
18
17
  none: false
19
18
  requirements:
20
19
  - - ! '>='
@@ -22,10 +21,15 @@ dependencies:
22
21
  version: '0'
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *2156982560
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
26
30
  - !ruby/object:Gem::Dependency
27
31
  name: clap
28
- requirement: &2156921700 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
29
33
  none: false
30
34
  requirements:
31
35
  - - ! '>='
@@ -33,10 +37,15 @@ dependencies:
33
37
  version: '0'
34
38
  type: :runtime
35
39
  prerelease: false
36
- version_requirements: *2156921700
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
37
46
  - !ruby/object:Gem::Dependency
38
47
  name: cutest
39
- requirement: &2156921220 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
40
49
  none: false
41
50
  requirements:
42
51
  - - ! '>='
@@ -44,7 +53,12 @@ dependencies:
44
53
  version: '0'
45
54
  type: :development
46
55
  prerelease: false
47
- version_requirements: *2156921220
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
48
62
  description:
49
63
  email:
50
64
  - damian.janowski@gmail.com
@@ -54,9 +68,11 @@ extensions: []
54
68
  extra_rdoc_files: []
55
69
  files:
56
70
  - ost-bin.gemspec
71
+ - CHANGELOG.md
72
+ - lib/ost-bin/version.rb
57
73
  - test/bin.rb
58
- - bin/ost
59
- has_rdoc: true
74
+ - !binary |-
75
+ YmluL29zdA==
60
76
  homepage: https://github.com/djanowski/ost-bin
61
77
  licenses: []
62
78
  post_install_message:
@@ -77,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
77
93
  version: '0'
78
94
  requirements: []
79
95
  rubyforge_project:
80
- rubygems_version: 1.6.2
96
+ rubygems_version: 1.8.21
81
97
  signing_key:
82
98
  specification_version: 3
83
99
  summary: ost(1)