daemon_controller 1.1.0 → 1.1.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.
@@ -1,8 +1,8 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "daemon_controller"
3
3
  # Don't forget to update version.rb too.
4
- s.version = "1.1.0"
5
- s.date = "2012-10-27"
4
+ s.version = "1.1.1"
5
+ s.date = "2013-01-20"
6
6
  s.summary = "A library for implementing daemon management capabilities"
7
7
  s.email = "hongli@phusion.nl"
8
8
  s.homepage = "https://github.com/FooBarWidget/daemon_controller"
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  "spec/test_helper.rb",
20
20
  "spec/daemon_controller_spec.rb",
21
21
  "spec/echo_server.rb",
22
- "spec/unresponsive_daemon.rb"
22
+ "spec/unresponsive_daemon.rb",
23
+ "spec/run_echo_server"
23
24
  ]
24
25
  end
@@ -1,5 +1,5 @@
1
1
  # daemon_controller, library for robust daemon management
2
- # Copyright (c) 2010, 2011, 2012 Phusion
2
+ # Copyright (c) 2010-2013 Phusion
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  # of this software and associated documentation files (the "Software"), to deal
@@ -777,6 +777,12 @@ private
777
777
  begin
778
778
  socket.connect_nonblock(sockaddr)
779
779
  rescue Errno::EISCONN
780
+ rescue Errno::EINVAL
781
+ if RUBY_PLATFORM =~ /freebsd/i
782
+ raise Errno::ECONNREFUSED
783
+ else
784
+ raise
785
+ end
780
786
  end
781
787
  else
782
788
  raise Errno::ECONNREFUSED
@@ -792,10 +798,15 @@ private
792
798
  end
793
799
 
794
800
  def ruby_interpreter
801
+ if defined?(RbConfig)
802
+ rb_config = RbConfig::CONFIG
803
+ else
804
+ rb_config = Config::CONFIG
805
+ end
795
806
  File.join(
796
- Config::CONFIG['bindir'],
797
- Config::CONFIG['RUBY_INSTALL_NAME']
798
- ) + Config::CONFIG['EXEEXT']
807
+ rb_config['bindir'],
808
+ rb_config['RUBY_INSTALL_NAME']
809
+ ) + rb_config['EXEEXT']
799
810
  end
800
811
 
801
812
  def safe_fork(double_fork)
@@ -1,5 +1,5 @@
1
1
  # daemon_controller, library for robust daemon management
2
- # Copyright (c) 2010, 2011, 2012 Phusion
2
+ # Copyright (c) 2010-2013 Phusion
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  # of this software and associated documentation files (the "Software"), to deal
@@ -22,6 +22,6 @@
22
22
  class DaemonController
23
23
  MAJOR = 1
24
24
  MINOR = 1
25
- TINY = 0
25
+ TINY = 1
26
26
  VERSION_STRING = "#{MAJOR}.#{MINOR}.#{TINY}"
27
27
  end # class DaemonController
data/spec/echo_server.rb CHANGED
@@ -1,8 +1,5 @@
1
- #!/usr/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
  # A simple echo server, used by the unit test.
3
- # The hashbang is explicitly set to /usr/bin/ruby because we need
4
- # a Ruby implementation that starts fast and supports forking. The
5
- # Ruby in $PATH may be JRuby which is neither.
6
3
  require 'socket'
7
4
  require 'optparse'
8
5
 
@@ -89,7 +86,7 @@ def main(options)
89
86
  if options[:pid_file]
90
87
  sleep(options[:wait1])
91
88
  File.open(options[:pid_file], 'w') do |f|
92
- f.write(Process.pid)
89
+ f.puts(Process.pid)
93
90
  end
94
91
  at_exit do
95
92
  File.unlink(options[:pid_file]) rescue nil
@@ -0,0 +1,9 @@
1
+ #!/bin/sh
2
+ dir=`dirname "$0"`
3
+ dir=`cd "$dir"; pwd`
4
+ if test "$MRI_RUBY" != ""; then
5
+ exec $MRI_RUBY "$dir/echo_server.rb" "$@"
6
+ else
7
+ echo 'In order to run echo_server, you must set the environment variable $MRI_RUBY.' >&2
8
+ exit 1
9
+ fi
data/spec/test_helper.rb CHANGED
@@ -2,9 +2,24 @@ root = File.expand_path(File.join(File.dirname(__FILE__), ".."))
2
2
  $LOAD_PATH.unshift(File.join(root, "lib"))
3
3
  Dir.chdir(root)
4
4
 
5
+ if !ENV['MRI_RUBY']
6
+ if RUBY_PLATFORM =~ /java/
7
+ # We need a Ruby implementation that starts fast and supports forking.
8
+ # JRuby is neither.
9
+ abort "In order to run these tests in JRuby, you must set " +
10
+ "the environment variable $MRI_RUBY to an MRI Ruby interpeter."
11
+ else
12
+ require 'rbconfig'
13
+ rb_config = defined?(RbConfig) ? RbConfig::CONFIG : Config::CONFIG
14
+ ENV['MRI_RUBY'] = rb_config['bindir'] + '/' + rb_config['RUBY_INSTALL_NAME'] +
15
+ rb_config['EXEEXT']
16
+ puts ENV['MRI_RUBY']
17
+ end
18
+ end
19
+
5
20
  module TestHelper
6
21
  def new_controller(options = {})
7
- @start_command = './spec/echo_server.rb -l spec/echo_server.log -P spec/echo_server.pid'
22
+ @start_command = './spec/run_echo_server -l spec/echo_server.log -P spec/echo_server.pid'
8
23
  if options[:wait1]
9
24
  @start_command << " --wait1 #{options[:wait1]}"
10
25
  end
metadata CHANGED
@@ -1,32 +1,22 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: daemon_controller
3
- version: !ruby/object:Gem::Version
4
- hash: 19
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.1
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 1
9
- - 0
10
- version: 1.1.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Hongli Lai
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-10-27 00:00:00 Z
12
+ date: 2013-01-20 00:00:00.000000000 Z
19
13
  dependencies: []
20
-
21
14
  description: A library for robust daemon management.
22
15
  email: hongli@phusion.nl
23
16
  executables: []
24
-
25
17
  extensions: []
26
-
27
18
  extra_rdoc_files: []
28
-
29
- files:
19
+ files:
30
20
  - README.markdown
31
21
  - LICENSE.txt
32
22
  - daemon_controller.gemspec
@@ -38,39 +28,29 @@ files:
38
28
  - spec/daemon_controller_spec.rb
39
29
  - spec/echo_server.rb
40
30
  - spec/unresponsive_daemon.rb
31
+ - spec/run_echo_server
41
32
  homepage: https://github.com/FooBarWidget/daemon_controller
42
33
  licenses: []
43
-
44
34
  post_install_message:
45
35
  rdoc_options: []
46
-
47
- require_paths:
36
+ require_paths:
48
37
  - lib
49
- required_ruby_version: !ruby/object:Gem::Requirement
38
+ required_ruby_version: !ruby/object:Gem::Requirement
50
39
  none: false
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- hash: 3
55
- segments:
56
- - 0
57
- version: "0"
58
- required_rubygems_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
45
  none: false
60
- requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- hash: 3
64
- segments:
65
- - 0
66
- version: "0"
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
67
50
  requirements: []
68
-
69
51
  rubyforge_project:
70
- rubygems_version: 1.8.15
52
+ rubygems_version: 1.8.24
71
53
  signing_key:
72
54
  specification_version: 3
73
55
  summary: A library for implementing daemon management capabilities
74
56
  test_files: []
75
-
76
- has_rdoc: true