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 +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
|