jobQueue 1.0.10 → 1.0.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 28e47a4e4d54daea2eb3f428915785d36d5c984e
4
+ data.tar.gz: 0dfbb240a4e9fa889058698b651e4151c4d42e14
5
+ SHA512:
6
+ metadata.gz: a396d9cc1d450088da602edadc90b3478b91072650c0ca8a53bd7b4fc4b337c70c4ccbd0f2671818de937ac2fb6ae4b764cfa1f2e89e812e962f5e0764598811
7
+ data.tar.gz: 24d18fbab107bbb016bd25248064cd8d782bc30245acab19987fdda9d8a29c128beda96e3d92f0f11592ff744f1bb220790da739bd2a5b4f8739b5aa839c6d63
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011-2012, Ralf Mueller (stark.dreamdetective@googlemail.com)
1
+ Copyright (c) 2011-2013, Ralf Mueller (stark.dreamdetective@googlemail.com)
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
@@ -11,6 +11,10 @@ jobQueue can do the following things:
11
11
  * Run shell commands
12
12
  * Respect user definded locks
13
13
 
14
+ I started a python2 implementation of this, which can be installed via pip
15
+ (https://pypi.python.org/pypi/jobqueue). When its maature enough, I will use
16
+ the ruby version numbers for it.
17
+
14
18
  == Installation
15
19
 
16
20
  === Gem Installation
@@ -80,7 +84,8 @@ please use personal mail, ruby-lang mailing list or github
80
84
 
81
85
  == Changelog
82
86
 
83
- * 1.0.10: more flexible logging control (new switches '-l' and '-b'
87
+ * 1.0.11: prun.rb now ignores empty lines
88
+ * 1.0.10: more flexible logging control (new switches '-l' and '-b')
84
89
  * 1.0.9: print out stdout and stderr from the jobs given to prun.rb, use '-D' to avoid printing
85
90
  * 1.0.8: support AIX for getting the maximum number of processors, improve processor count for jruby and rbx
86
91
 
@@ -50,6 +50,6 @@ ARGV.each do|f|
50
50
  lines = File.open(f).readlines.map(&:chomp)
51
51
  q = SystemJobs.new(options[:workers],options[:debug])
52
52
  puts "Run with #{q.workers} threads" unless :off == options[:debug]
53
- lines.each {|line| q.push(line) }
53
+ lines.each {|line| q.push(line) unless line.strip.empty? }
54
54
  q.run
55
55
  end
data/gemspec CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  spec = Gem::Specification.new do |s|
4
4
  s.name = "jobQueue"
5
- s.version = '1.0.10'
5
+ s.version = '1.0.11'
6
6
  s.platform = Gem::Platform::RUBY
7
7
  s.bindir = 'bin'
8
8
  s.files = ["lib/jobqueue.rb","bin/prun.rb"] + ["gemspec","LICENSE","README.rdoc"]
@@ -5,6 +5,9 @@ require 'tempfile'
5
5
 
6
6
 
7
7
  NTHREDs = ENV['NTHREDs'].nil? ? 4 : ENV['NTHREDs']
8
+ def prunCall(np,script)
9
+ "ruby -rubygems ./bin/prun.rb -j #{np} #{script}"
10
+ end
8
11
 
9
12
  class A
10
13
  attr_accessor :i,:j,:k,:h
@@ -212,37 +215,48 @@ class TestJobQueue < Test::Unit::TestCase
212
215
  script.close
213
216
  filename = script.path
214
217
  puts IO.popen("cat "+script.path).read
215
- cmd = lambda {|np,script| "ruby -rubygems ./bin/prun.rb -j #{np} #{script}"}
216
218
 
217
219
  # test in debug mode
218
220
  tstart = Time.new
219
- puts IO.popen(cmd[4,filename]).read
221
+ puts IO.popen(prunCall(4,filename)).read
220
222
  tend = Time.new
221
223
  trun = tend - tstart
222
224
  assert(2.0 < trun,"Test (debug mode) runs to fast: #{trun}, lower limit 2")
223
225
  assert(trun < 3 ,"Test (debug mode) runs to slow: #{trun}, upper limit 3")
224
226
  # test in normal mode
225
227
  tstart = Time.new
226
- puts IO.popen(cmd[4,filename]).read
228
+ puts IO.popen(prunCall(4,filename)).read
227
229
  tend = Time.new
228
230
  trun = tend - tstart
229
231
  assert(2.0 < trun,"Test (normal mode) runs to fast: #{trun}, lower limit 2")
230
232
  assert(trun < 3 ,"Test (normal mode) runs to slow: #{trun}, upper limit 3")
231
233
  # with 8 threads
232
234
  tstart = Time.new
233
- puts IO.popen(cmd[8,filename]).read
235
+ puts IO.popen(prunCall(8,filename)).read
234
236
  tend = Time.new
235
237
  trun = tend - tstart
236
238
  assert(1.0 < trun,"Test (debug mode) runs to fast: #{trun}, lower limit 1")
237
239
  assert(trun < 2.0,"Test (debug mode) runs to slow: #{trun}, lower limit 2")
238
240
  # test in normal mode
239
241
  tstart = Time.new
240
- puts IO.popen(cmd[8,filename]).read
242
+ puts IO.popen(prunCall(8,filename)).read
241
243
  tend = Time.new
242
244
  trun = tend - tstart
243
245
  assert(1.0 < trun,"Test (debug mode) runs to fast: #{trun}, lower limit 1")
244
246
  assert(trun < 2.0,"Test (debug mode) runs to slow: #{trun}, lower limit 2")
245
247
  end
248
+ def test_prun_crash_on_empty_lines
249
+ tf = Tempfile.new("jobQueueTest")
250
+ tp = tf.path
251
+ tf.write("date\n")
252
+ tf.write("ls $HOME\n")
253
+ tf.write( "\n")
254
+ tf.write( "pwd\n")
255
+ tf.close
256
+ puts tp
257
+ puts IO.popen("cat #{tp}").read
258
+ puts IO.popen(prunCall(2,tp)).read
259
+ end
246
260
 
247
261
  if 'thingol' == `hostname`.chomp
248
262
  def test_init_without_args
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jobQueue
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
5
- prerelease:
4
+ version: 1.0.11
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ralf Mueller
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-21 00:00:00.000000000 Z
11
+ date: 2013-05-17 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: Run Shell commands or Ruby methods in parallel
15
14
  email: stark.dreamdetective@gmail.com
@@ -29,27 +28,26 @@ files:
29
28
  homepage: https://github.com/Try2Code/jobQueue
30
29
  licenses:
31
30
  - BSD
31
+ metadata: {}
32
32
  post_install_message:
33
33
  rdoc_options: []
34
34
  require_paths:
35
35
  - lib
36
36
  required_ruby_version: !ruby/object:Gem::Requirement
37
- none: false
38
37
  requirements:
39
- - - ! '>='
38
+ - - '>='
40
39
  - !ruby/object:Gem::Version
41
40
  version: '1.8'
42
41
  required_rubygems_version: !ruby/object:Gem::Requirement
43
- none: false
44
42
  requirements:
45
- - - ! '>='
43
+ - - '>='
46
44
  - !ruby/object:Gem::Version
47
45
  version: '0'
48
46
  requirements: []
49
47
  rubyforge_project:
50
- rubygems_version: 1.8.23
48
+ rubygems_version: 2.0.0
51
49
  signing_key:
52
- specification_version: 3
50
+ specification_version: 4
53
51
  summary: Run Shell commands or Ruby methods in parallel
54
52
  test_files:
55
53
  - test/test_jobqueue.rb