runnable 0.2.0 → 0.2.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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
@@ -21,7 +21,7 @@
21
21
  # It holds that parameters in a hash and the child has
22
22
  # to be the one who return the formatted string according
23
23
  # to the standard used.
24
- class Command_parser
24
+ class CommandParser
25
25
  # Create a new instance of the parser.
26
26
  def initialize
27
27
  @params = {}
@@ -18,7 +18,7 @@
18
18
  require 'runnable/command_parser'
19
19
 
20
20
  # Parse the parameter hash using the extended standard.
21
- class Extended < Command_parser
21
+ class Extended < CommandParser
22
22
 
23
23
  # Convert a hash in a Extended style string options.
24
24
  # @return [String] Extended-style parsed params in a raw character array.
data/lib/runnable/gnu.rb CHANGED
@@ -18,7 +18,7 @@
18
18
  require 'runnable/command_parser'
19
19
 
20
20
  # Parse the parameter hash using the GNU standard.
21
- class Gnu < Command_parser
21
+ class Gnu < CommandParser
22
22
 
23
23
  # This method convert a hash in a string ready to
24
24
  # be passed to a command that uses GNU style to parse command line
data/lib/runnable.rb CHANGED
@@ -18,6 +18,7 @@
18
18
 
19
19
  require 'runnable/gnu'
20
20
  require 'runnable/extended'
21
+ require 'fileutils'
21
22
 
22
23
  # Convert a executable command in a Ruby-like class
23
24
  # you are able to start, define params and send signals (like kill, or stop)
@@ -222,6 +223,10 @@ class Runnable
222
223
  @run_thread.join if @run_thread.alive?
223
224
  end
224
225
 
226
+ def running?
227
+ Dir.exists?( "/proc/#{@pid}")
228
+ end
229
+
225
230
  # Calculate the estimated memory usage in Kb.
226
231
  # @return [Number] Estimated mem usage in Kb.
227
232
  def mem
@@ -348,21 +353,36 @@ class Runnable
348
353
  # @return [nil]
349
354
  def failed( exceptions )
350
355
  end
351
-
352
- protected
353
356
 
354
357
  # Send the desired signal to the command.
355
358
  # @param [Symbol] Signal to be send to the command.
356
359
  # @todo raise ESRCH if pid is not in system
357
360
  # or EPERM if pid is not from user.
358
- def send_signal( signal )
361
+ def send_signal( signal )
359
362
  if signal == :stop
360
- Process.kill( :SIGINT, @pid )
363
+ signal = :SIGINT
361
364
  elsif signal == :kill
362
- Process.kill( :SIGKILL, @pid )
365
+ signal = :SIGKILL
366
+ end
367
+
368
+ `ps -ef`.each_line do |line|
369
+ line = line.split
370
+ pid = line[1]
371
+ ppid = line[2]
372
+
373
+ if ppid.to_i == @pid
374
+ Process.kill( signal, pid.to_i )
375
+ end
376
+ end
377
+
378
+ begin
379
+ Process.kill( signal, @pid )
380
+ rescue Errno::ESRCH
381
+ # As we kill child processes, main process may have exit already
363
382
  end
364
383
  end
365
-
384
+
385
+ protected
366
386
  # Redirect command I/O to log files.
367
387
  # These files are located in /var/log/runnable.
368
388
  # @param [Hash] Outputs options.
data/runnable.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{runnable}
8
- s.version = "0.2.0"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Rafael García", "Luis Ciudad", "Pedro Navajas", "Javier Aranda"]
12
- s.date = %q{2011-08-03}
12
+ s.date = %q{2011-08-08}
13
13
  s.description = %q{Convert a executable command in a Ruby-like class you are able to start, define params and send signals (like kill, or stop)}
14
14
  s.email = ["rgarcia@nosolosoftware.biz", "lciudad@nosolosoftware.biz", "pnavajas@nosolosoftware.biz", "jaranda@nosolosoftware.biz"]
15
15
  s.extra_rdoc_files = [
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
  s.homepage = %q{http://github.com/nosolosoftware/runnable}
29
29
  s.licenses = ["GPL-3"]
30
30
  s.require_paths = ["lib"]
31
- s.rubygems_version = %q{1.7.2}
31
+ s.rubygems_version = %q{1.6.2}
32
32
  s.summary = %q{A Ruby gem for execute and control system commands}
33
33
 
34
34
  if s.respond_to? :specification_version then
metadata CHANGED
@@ -1,99 +1,98 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: runnable
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.1
4
5
  prerelease:
5
- version: 0.2.0
6
6
  platform: ruby
7
- authors:
8
- - "Rafael Garc\xC3\xADa"
7
+ authors:
8
+ - Rafael García
9
9
  - Luis Ciudad
10
10
  - Pedro Navajas
11
11
  - Javier Aranda
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
-
16
- date: 2011-08-03 00:00:00 Z
17
- dependencies:
18
- - !ruby/object:Gem::Dependency
15
+ date: 2011-08-08 00:00:00.000000000 +02:00
16
+ default_executable:
17
+ dependencies:
18
+ - !ruby/object:Gem::Dependency
19
19
  name: rake
20
- requirement: &id001 !ruby/object:Gem::Requirement
20
+ requirement: &20613220 !ruby/object:Gem::Requirement
21
21
  none: false
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
22
+ requirements:
23
+ - - ! '>='
24
+ - !ruby/object:Gem::Version
25
25
  version: 0.8.7
26
26
  type: :development
27
27
  prerelease: false
28
- version_requirements: *id001
29
- - !ruby/object:Gem::Dependency
28
+ version_requirements: *20613220
29
+ - !ruby/object:Gem::Dependency
30
30
  name: yard
31
- requirement: &id002 !ruby/object:Gem::Requirement
31
+ requirement: &20606980 !ruby/object:Gem::Requirement
32
32
  none: false
33
- requirements:
34
- - - ">="
35
- - !ruby/object:Gem::Version
33
+ requirements:
34
+ - - ! '>='
35
+ - !ruby/object:Gem::Version
36
36
  version: 0.6.8
37
37
  type: :development
38
38
  prerelease: false
39
- version_requirements: *id002
40
- - !ruby/object:Gem::Dependency
39
+ version_requirements: *20606980
40
+ - !ruby/object:Gem::Dependency
41
41
  name: rspec
42
- requirement: &id003 !ruby/object:Gem::Requirement
42
+ requirement: &20605980 !ruby/object:Gem::Requirement
43
43
  none: false
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
47
  version: 2.5.0
48
48
  type: :development
49
49
  prerelease: false
50
- version_requirements: *id003
51
- - !ruby/object:Gem::Dependency
50
+ version_requirements: *20605980
51
+ - !ruby/object:Gem::Dependency
52
52
  name: cucumber
53
- requirement: &id004 !ruby/object:Gem::Requirement
53
+ requirement: &20604860 !ruby/object:Gem::Requirement
54
54
  none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
58
  version: 0.10.2
59
59
  type: :development
60
60
  prerelease: false
61
- version_requirements: *id004
62
- - !ruby/object:Gem::Dependency
61
+ version_requirements: *20604860
62
+ - !ruby/object:Gem::Dependency
63
63
  name: jeweler
64
- requirement: &id005 !ruby/object:Gem::Requirement
64
+ requirement: &20603560 !ruby/object:Gem::Requirement
65
65
  none: false
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
69
  version: 1.6.0
70
70
  type: :development
71
71
  prerelease: false
72
- version_requirements: *id005
73
- - !ruby/object:Gem::Dependency
72
+ version_requirements: *20603560
73
+ - !ruby/object:Gem::Dependency
74
74
  name: bluecloth
75
- requirement: &id006 !ruby/object:Gem::Requirement
75
+ requirement: &20602440 !ruby/object:Gem::Requirement
76
76
  none: false
77
- requirements:
78
- - - ">="
79
- - !ruby/object:Gem::Version
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
80
  version: 2.1.0
81
81
  type: :development
82
82
  prerelease: false
83
- version_requirements: *id006
84
- description: Convert a executable command in a Ruby-like class you are able to start, define params and send signals (like kill, or stop)
85
- email:
83
+ version_requirements: *20602440
84
+ description: Convert a executable command in a Ruby-like class you are able to start,
85
+ define params and send signals (like kill, or stop)
86
+ email:
86
87
  - rgarcia@nosolosoftware.biz
87
88
  - lciudad@nosolosoftware.biz
88
89
  - pnavajas@nosolosoftware.biz
89
90
  - jaranda@nosolosoftware.biz
90
91
  executables: []
91
-
92
92
  extensions: []
93
-
94
- extra_rdoc_files:
93
+ extra_rdoc_files:
95
94
  - README.markdown
96
- files:
95
+ files:
97
96
  - COPYING
98
97
  - README.markdown
99
98
  - VERSION
@@ -102,35 +101,33 @@ files:
102
101
  - lib/runnable/extended.rb
103
102
  - lib/runnable/gnu.rb
104
103
  - runnable.gemspec
104
+ has_rdoc: true
105
105
  homepage: http://github.com/nosolosoftware/runnable
106
- licenses:
106
+ licenses:
107
107
  - GPL-3
108
108
  post_install_message:
109
109
  rdoc_options: []
110
-
111
- require_paths:
110
+ require_paths:
112
111
  - lib
113
- required_ruby_version: !ruby/object:Gem::Requirement
112
+ required_ruby_version: !ruby/object:Gem::Requirement
114
113
  none: false
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- hash: -4434214219882422992
119
- segments:
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ segments:
120
119
  - 0
121
- version: "0"
122
- required_rubygems_version: !ruby/object:Gem::Requirement
120
+ hash: 3781212566389578012
121
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
122
  none: false
124
- requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- version: "0"
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
128
127
  requirements: []
129
-
130
128
  rubyforge_project:
131
- rubygems_version: 1.7.2
129
+ rubygems_version: 1.6.2
132
130
  signing_key:
133
131
  specification_version: 3
134
132
  summary: A Ruby gem for execute and control system commands
135
133
  test_files: []
136
-