batch 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -1,7 +1,16 @@
1
1
  Batch
2
2
  =====
3
3
 
4
- `<%= Faker::Company.bs %>`
4
+ Keep your batch jobs under control.
5
+
6
+ Description
7
+ -----------
8
+
9
+ Say you have a thousand images to process. You write a script, fire it and go
10
+ to bed, only to realize the morning after that and exception was raised and the
11
+ script was aborted. Well, no more frustration: now you can use Batch to make
12
+ sure your script continues working despite those exceptions, and you can now
13
+ get a nice report to read while you drink your morning coffee.
5
14
 
6
15
  Usage
7
16
  -----
@@ -34,3 +43,37 @@ don't get interrupted right after you go to bed:
34
43
  Some errors occured:
35
44
 
36
45
  # ... detailed exceptions here
46
+
47
+ You can determine the line width by setting the environment variable
48
+ `BATCH_WIDTH`, which defaults to 75.
49
+
50
+ Installation
51
+ ------------
52
+
53
+ $ gem install batch
54
+
55
+ License
56
+ -------
57
+
58
+ Copyright (c) 2010 Damian Janowski and Michel Martens
59
+
60
+ Permission is hereby granted, free of charge, to any person
61
+ obtaining a copy of this software and associated documentation
62
+ files (the "Software"), to deal in the Software without
63
+ restriction, including without limitation the rights to use,
64
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
65
+ copies of the Software, and to permit persons to whom the
66
+ Software is furnished to do so, subject to the following
67
+ conditions:
68
+
69
+ The above copyright notice and this permission notice shall be
70
+ included in all copies or substantial portions of the Software.
71
+
72
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
73
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
74
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
75
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
76
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
77
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
78
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
79
+ OTHER DEALINGS IN THE SOFTWARE.
data/batch.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "batch"
3
- s.version = "0.0.2"
3
+ s.version = "0.0.3"
4
4
  s.summary = "Iterate Enumerables with progress reporting."
5
5
  s.authors = ["Damian Janowski", "Michel Martens"]
6
6
  s.email = ["djanowski@dimaion.com", "michel@soveran.com"]
data/lib/batch.rb CHANGED
@@ -1,10 +1,11 @@
1
1
  class Batch
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
 
4
4
  attr :enumerable
5
5
 
6
6
  def initialize(enumerable)
7
7
  @enumerable = enumerable
8
+ @width = (ENV["BATCH_WIDTH"] || 75).to_i
8
9
  end
9
10
 
10
11
  def each(&block)
@@ -45,10 +46,14 @@ class Batch
45
46
  $stderr.puts "\nSome errors occured:\n\n"
46
47
 
47
48
  @errors.each do |item, error|
48
- $stderr.puts "#{item.inspect}: #{error}\n"
49
+ report_error(item, error)
49
50
  end
50
51
  end
51
52
 
53
+ def report_error(item, error)
54
+ $stderr.puts "#{item.inspect}: #{error}\n"
55
+ end
56
+
52
57
  def total
53
58
  @enumerable.size
54
59
  end
@@ -62,7 +67,7 @@ class Batch
62
67
  end
63
68
 
64
69
  def eol?
65
- @current % 75 == 0 || @current == total
70
+ @current % @width == 0 || @current == total
66
71
  end
67
72
 
68
73
  def self.each(enumerable, &block)
data/test/batch_test.rb CHANGED
@@ -1,4 +1,6 @@
1
- require File.join(File.dirname(__FILE__), "test_helper")
1
+ # encoding: UTF-8
2
+
3
+ require File.expand_path("./test_helper", File.dirname(__FILE__))
2
4
 
3
5
  class BatchTest < Test::Unit::TestCase
4
6
  should "report" do
@@ -40,4 +42,21 @@ EOS
40
42
  assert_equal expected_stdout.rstrip, stdout.rstrip
41
43
  assert_equal expected_stderr.rstrip, stderr.rstrip
42
44
  end
45
+
46
+ should "use BATCH_WIDTH" do
47
+ ENV["BATCH_WIDTH"] = "40"
48
+ stdout, _ = capture do
49
+ Batch.each((1..80).to_a) do |item|
50
+ item + 1
51
+ end
52
+ end
53
+
54
+ expected = <<-EOS
55
+ 0% ........................................
56
+ 50% ........................................
57
+ 100%
58
+ EOS
59
+
60
+ assert_equal expected.rstrip, stdout.rstrip
61
+ end
43
62
  end
data/test/test_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "stringio"
2
2
  require "contest"
3
- require File.join(File.dirname(__FILE__), "..", "lib", "batch")
3
+
4
+ require File.expand_path("./../lib/batch", File.dirname(__FILE__))
4
5
 
5
6
  def capture
6
7
  stdout, $stdout = $stdout, StringIO.new
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 2
9
- version: 0.0.2
8
+ - 3
9
+ version: 0.0.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Damian Janowski
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-18 00:00:00 -03:00
18
+ date: 2010-09-20 00:00:00 -03:00
19
19
  default_executable:
20
20
  dependencies: []
21
21