format_array 1.0 → 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.
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