ost-bin 0.0.2 → 0.0.3

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.
@@ -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)