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 +2 -0
- data/Manifest +3 -1
- data/Rakefile +1 -0
- data/format_array.gemspec +3 -2
- data/lib/format_array.rb +3 -24
- data/test/test_simple.rb +9 -0
- data/test/test_wrap.rb +28 -0
- metadata +9 -6
data/CHANGELOG
CHANGED
data/Manifest
CHANGED
data/Rakefile
CHANGED
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.
|
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", "
|
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 <
|
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 /
|
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
|
data/test/test_simple.rb
ADDED
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:
|
4
|
+
hash: 13
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: "1.
|
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
|
-
-
|
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
|