format_array 1.0 → 1.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1 +1,3 @@
1
+ v1.1. Add some trivial tests and parameterise our length
2
+
1
3
  v1.0. First cut
data/Manifest CHANGED
@@ -1,6 +1,8 @@
1
1
  CHANGELOG
2
2
  LICENSE
3
+ Manifest
3
4
  README
4
5
  Rakefile
5
6
  lib/format_array.rb
6
- Manifest
7
+ test/test_simple.rb
8
+ test/test_wrap.rb
data/Rakefile CHANGED
@@ -1,2 +1,3 @@
1
+ require 'rake'
1
2
  require 'echoe'
2
3
  Echoe.new('format_array')
data/format_array.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{format_array}
5
- s.version = "1.0"
5
+ s.version = "1.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = [""]
@@ -10,13 +10,14 @@ Gem::Specification.new do |s|
10
10
  s.description = %q{}
11
11
  s.email = %q{}
12
12
  s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "lib/format_array.rb"]
13
- s.files = ["CHANGELOG", "LICENSE", "README", "Rakefile", "lib/format_array.rb", "Manifest", "format_array.gemspec"]
13
+ s.files = ["CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "lib/format_array.rb", "test/test_simple.rb", "test/test_wrap.rb", "format_array.gemspec"]
14
14
  s.homepage = %q{}
15
15
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Format_array", "--main", "README"]
16
16
  s.require_paths = ["lib"]
17
17
  s.rubyforge_project = %q{format_array}
18
18
  s.rubygems_version = %q{1.3.7}
19
19
  s.summary = %q{}
20
+ s.test_files = ["test/test_simple.rb", "test/test_wrap.rb"]
20
21
 
21
22
  if s.respond_to? :specification_version then
22
23
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
data/lib/format_array.rb CHANGED
@@ -1,16 +1,16 @@
1
1
  CUTOFF=120
2
2
 
3
- def format_array(a, p, j='; ')
3
+ def format_array(a, p, cutoff=CUTOFF, j='; ')
4
4
  raw = a.sort.join(j)
5
5
  tmp = "#{p}: #{raw}"
6
6
 
7
7
  # don't bother formatting if we're short
8
- if raw.length + p.length < CUTOFF then
8
+ if raw.length + p.length < cutoff then
9
9
  return [tmp]
10
10
  end
11
11
 
12
12
  # try a naive longest->shortest distribution
13
- lines = raw.length / CUTOFF
13
+ lines = raw.length / cutoff
14
14
  sa = a.sort_by {|s| s.length}.reverse
15
15
  out = Array.new(12) { Array.new }
16
16
  while (sa.length > lines+1) do
@@ -24,24 +24,3 @@ def format_array(a, p, j='; ')
24
24
  strings = out.find_all {|i| i.length > 0}.map {|i| "#{p}: " << i.join(j)}
25
25
  return strings
26
26
  end
27
-
28
- if nil then
29
- test_data = <<HERE.split "\n"
30
- Accrington Stanley 0-2 Wycombe R
31
- Barnet 0-1 Morecambe R
32
- Bury 1-5 Milton Keynes Dons R
33
- Chesterfield 1-1 Chester R
34
- Dag & Red 0-1 Stockport R
35
- Macclesfield 0-1 Bradford R
36
- Mansfield 2-3 Brentford R
37
- Notts County 1-1 Grimsby R
38
- Rochdale 0-2 Peterborough R
39
- Rotherham 0-1 Hereford R
40
- Shrewsbury 1-2 Lincoln City R
41
- HERE
42
-
43
- 0.upto(5) { |i|
44
- test = test_data[0..i]
45
- puts format_array(test, 'DIV3').map{|k| "T#{i}: "<<k}.join("\n")
46
- }
47
- end
@@ -0,0 +1,9 @@
1
+ require 'format_array'
2
+ require 'test/unit'
3
+
4
+ class TC_simple < Test::Unit::TestCase
5
+ def test_simple
6
+ r = format_array(['Hello','Sir'], 'TEST')
7
+ assert_equal('TEST: Hello; Sir', r[0])
8
+ end
9
+ end
data/test/test_wrap.rb ADDED
@@ -0,0 +1,28 @@
1
+ require 'format_array'
2
+ require 'test/unit'
3
+
4
+ class TC_simple < Test::Unit::TestCase
5
+ def test_wrap
6
+ lines="Accrington Stanley 0-2 Wycombe R
7
+ Barnet 0-1 Morecambe R
8
+ Bury 1-5 Milton Keynes Dons R
9
+ Chesterfield 1-1 Chester R
10
+ Dag & Red 0-1 Stockport R
11
+ Macclesfield 0-1 Bradford R".split(/\n/)
12
+ r = format_array(lines, 'DIV2')
13
+ e = ["DIV2: Accrington Stanley 0-2 Wycombe R; Macclesfield 0-1 Bradford R; Dag & Red 0-1 Stockport R", "DIV2: Bury 1-5 Milton Keynes Dons R; Chesterfield 1-1 Chester R; Barnet 0-1 Morecambe R"]
14
+ assert_equal(e, r)
15
+ end
16
+
17
+ def test_wrap_short
18
+ lines="Accrington Stanley 0-2 Wycombe R
19
+ Barnet 0-1 Morecambe R
20
+ Bury 1-5 Milton Keynes Dons R
21
+ Chesterfield 1-1 Chester R
22
+ Dag & Red 0-1 Stockport R
23
+ Macclesfield 0-1 Bradford R".split(/\n/)
24
+ r = format_array(lines, 'DIV2', 76)
25
+ e = ["DIV2: Accrington Stanley 0-2 Wycombe R; Chesterfield 1-1 Chester R", "DIV2: Bury 1-5 Milton Keynes Dons R; Dag & Red 0-1 Stockport R", "DIV2: Macclesfield 0-1 Bradford R; Barnet 0-1 Morecambe R"]
26
+ assert_equal(e, r)
27
+ end
28
+ end
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: format_array
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
- - 0
9
- version: "1.0"
8
+ - 1
9
+ version: "1.1"
10
10
  platform: ruby
11
11
  authors:
12
12
  - ""
@@ -32,10 +32,12 @@ extra_rdoc_files:
32
32
  files:
33
33
  - CHANGELOG
34
34
  - LICENSE
35
+ - Manifest
35
36
  - README
36
37
  - Rakefile
37
38
  - lib/format_array.rb
38
- - Manifest
39
+ - test/test_simple.rb
40
+ - test/test_wrap.rb
39
41
  - format_array.gemspec
40
42
  has_rdoc: true
41
43
  homepage: ""
@@ -77,5 +79,6 @@ rubygems_version: 1.3.7
77
79
  signing_key:
78
80
  specification_version: 3
79
81
  summary: ""
80
- test_files: []
81
-
82
+ test_files:
83
+ - test/test_simple.rb
84
+ - test/test_wrap.rb