RusaMember 1.0.0 → 1.0.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/Manifest.txt +24 -0
- data/README.txt +6 -3
- data/Rakefile +0 -1
- data/bin/rusa_member +6 -0
- data/lib/member.rb +71 -0
- data/lib/parse_member.rb +164 -0
- data/lib/parse_result.rb +94 -0
- data/lib/rusa_member.rb +1 -1
- data/test/files/boston.html +209 -0
- data/test/files/clubMembers.txt +1674 -0
- data/test/files/doe.txt +8 -0
- data/test/files/dussler.html +101 -0
- data/test/files/dussler.txt +8 -0
- data/test/files/dussler_results_2006.html +243 -0
- data/test/files/dussler_results_2007.html +278 -0
- data/test/files/dussler_results_2008.html +211 -0
- data/test/files/member_pre.txt +82 -0
- data/test/files/member_search.txt +82 -0
- data/test/files/multiSmith.txt +241 -0
- data/test/files/no_results.html +164 -0
- data/test/files/one_result.html +172 -0
- data/test/files/post.txt +13 -0
- data/test/files/smith.html +173 -0
- data/test/files/smith.txt +10 -0
- data/test/files/thomas.html +101 -0
- data/test/files/thomas_results_2008.html +369 -0
- data/test/html_frags.rb +113 -0
- data/test/test_parse_results.rb +94 -20
- metadata +34 -2
data/test/html_frags.rb
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
|
3
|
+
##
|
4
|
+
# Student Name: bill dussler
|
5
|
+
# Homework Week: 8
|
6
|
+
#
|
7
|
+
|
8
|
+
module HtmlFragments
|
9
|
+
|
10
|
+
RESULT_1 = <<-EOF
|
11
|
+
<P><B>Dussler</B>, William | RUSA No. 0137 | Burien, WA
|
12
|
+
<BR>Seattle International Randonneurs | ACP Club Code: 947018
|
13
|
+
<BR><A HREF="/join.html">Membership Expires:</A>
|
14
|
+
<B>2008/12/31</B>
|
15
|
+
EOF
|
16
|
+
|
17
|
+
RESULT_2 = <<-EOF
|
18
|
+
<P><B>Aard</B>, Arar | RUSA No. 013 | Boston, MA
|
19
|
+
<BR>Boston Brevet Series | ACP Club Code: 123
|
20
|
+
<BR><A HREF="/join.html">Membership Expires:</A>
|
21
|
+
<B>2009/12/31</B>
|
22
|
+
EOF
|
23
|
+
|
24
|
+
RESULT_3 = <<-EOF
|
25
|
+
<P><B>Zard</B>, Marmar | RUSA No. 9137 | Bothell, WA
|
26
|
+
<BR>Ballard Vikings | ACP Club Code: 947018
|
27
|
+
<BR><A HREF="/join.html">Membership Expires:</A>
|
28
|
+
<B>1999/12/31</B>
|
29
|
+
EOF
|
30
|
+
|
31
|
+
HTML_OPEN = <<-EOF
|
32
|
+
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 3.2//EN">
|
33
|
+
<HTML>
|
34
|
+
<HEAD>
|
35
|
+
<TITLE>RUSA: Members </TITLE>
|
36
|
+
<META HTTP-EQUIV="Keywords" CONTENT="Bicycle Touring, Bicycle Racing, Long Distance Cycling, Cycling, Bicycling, Randonneur, Randonneuring, Brevet, RUSA">
|
37
|
+
<META HTTP-EQUIV="Reply-to" CONTENT="lois_springsteen@prodigy.net (Lois Springsteen)">
|
38
|
+
<BASEFONT SIZE=3>
|
39
|
+
</HEAD>
|
40
|
+
<BODY BGCOLOR="#FFFFFF" TEXT="#003399" LINK="#FF0000" VLINK="#FF0000" ALINK="#003399">
|
41
|
+
<TABLE BORDER=0 HSPACE=0 cellpadding=10 WIDTH=100%>
|
42
|
+
<TR>
|
43
|
+
<TD ALIGN=left VALIGN=middle width=140>
|
44
|
+
<IMG SRC="http://www.rusa.org/Images/logorusa.gif" ALT="RUSA Logo" HSPACE=0 ALIGN=absmiddle>
|
45
|
+
</TD>
|
46
|
+
<TD ALIGN=left VALIGN=middle>
|
47
|
+
<H1><FONT FACE="ARIAL, HELVETICA"><B>Members</B></FONT></H1>
|
48
|
+
</TD>
|
49
|
+
<TD ALIGN=right VALIGN=middle></TD>
|
50
|
+
</TR>
|
51
|
+
</TABLE>
|
52
|
+
<HR SIZE=3 WIDTH="100%" ALIGN=CENTER>
|
53
|
+
<TABLE BORDER=0 HSPACE=0 cellpadding=10>
|
54
|
+
<TR ALIGN=left VALIGN=top width=140>
|
55
|
+
<TD NOWRAP>
|
56
|
+
<FONT FACE="ARIAL, HELVETICA" SIZE=-1>
|
57
|
+
<B>General</B><SMALL>
|
58
|
+
<BR>-- <A HREF="http://www.rusa.org/announce.html"><FONT COLOR="#3cb545">Announcements (11/28)</FONT></A>
|
59
|
+
<BR>-- <A HREF="http://www.rusa.org/about.html">About Randonneuring</A>
|
60
|
+
<BR>-- <A HREF="http://www.rusa.org/links.html">Links</A>
|
61
|
+
<BR>-- <A HREF="http://www.rusa.org/index.html">Home</A>
|
62
|
+
</SMALL>
|
63
|
+
<P><B>Search For</B><SMALL>
|
64
|
+
<BR>-- <A HREF="http://www.rusa.org/cgi-bin/eventsearch_GF.pl">Rides</A>
|
65
|
+
<BR>-- <A HREF="http://www.rusa.org/results_search.html">Results</A>
|
66
|
+
<BR>-- <A HREF="http://www.rusa.org/cgi-bin/membersearch_GF.pl">Members</A>
|
67
|
+
<BR>-- <A HREF="http://www.rusa.org/cgi-bin/officialsearch_GF.pl">Officials</A>
|
68
|
+
<BR>-- <A HREF="http://www.rusa.org/cgi-bin/clubsearch_GF.pl">ACP Club Codes</A>
|
69
|
+
<BR>-- <A HREF="http://www.rusa.org/cgi-bin/routesearch_GF.pl">Routes</A>
|
70
|
+
<BR>-- <A HREF="http://www.rusa.org/teamrando.html">Team Events</A>
|
71
|
+
<BR>-- <A HREF="http://www.rusa.org/perminfo.html">Permanents</A>
|
72
|
+
</SMALL>
|
73
|
+
<P><B>Members' Info</B><SMALL>
|
74
|
+
<BR>-- <A HREF="http://www.rusa.org/join.html">Join/Renew</A>
|
75
|
+
<BR>-- <A HREF="http://www.rusa.org/awards.html">Awards</A>
|
76
|
+
<BR>-- <A HREF="http://www.rusa.org/cgi-bin/store_GF.pl">Online Store</A>
|
77
|
+
<BR>-- <A HREF="http://www.rusa.org/nletter.html">Newsletter</A>
|
78
|
+
<BR>-- <A HREF="http://www.rusa.org/pbpphotogallery.html">Photo Gallery</A>
|
79
|
+
<BR>-- <A HREF="http://www.rusa.org/stories.html">Rider Stories</A>
|
80
|
+
</SMALL>
|
81
|
+
<P><B>Long Brevets</B><SMALL>
|
82
|
+
<BR>-- <A HREF="http://www.rusa.org/pbp.html">PBP: Paris-Brest-Paris</A>
|
83
|
+
<BR>-- <A HREF="http://www.rusa.org/1200kms.html">Others</A>
|
84
|
+
</SMALL>
|
85
|
+
<P><B>Administration</B><SMALL>
|
86
|
+
<BR>-- <A HREF="http://www.rusa.org/rules.html">Rules</A>
|
87
|
+
<BR>-- <A HREF="http://www.rusa.org/rbakit.html">RBAs</A>
|
88
|
+
<BR>-- <A HREF="http://www.rusa.org/records.html">Records</A>
|
89
|
+
</SMALL>
|
90
|
+
</FONT>
|
91
|
+
</TD>
|
92
|
+
<TD ALIGN=left VALIGN=top>
|
93
|
+
|
94
|
+
999999 Matches Found
|
95
|
+
EOF
|
96
|
+
|
97
|
+
HTML_CLOSE = <<-EOF
|
98
|
+
</TD>
|
99
|
+
</TR>
|
100
|
+
</TABLE>
|
101
|
+
<HR SIZE=3 WIDTH="100%" ALIGN=Center>
|
102
|
+
<P><FONT FACE="ARIAL, HELVETICA" SIZE=-1>Revision: November 29, 2008<BR>
|
103
|
+
Please direct questions, comments, or problem reports to the <A HREF="http://www.rusa.org/webmaster.html">webmaster</A>.<BR>
|
104
|
+
<B>© Copyright 2008, <A HREF="http://www.rusa.org">Randonneurs USA</A></B>,
|
105
|
+
except as noted otherwise.</FONT></P>
|
106
|
+
</BODY>
|
107
|
+
</HTML>
|
108
|
+
|
109
|
+
</BODY>
|
110
|
+
</HTML>
|
111
|
+
EOF
|
112
|
+
|
113
|
+
end
|
data/test/test_parse_results.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
##
|
4
4
|
# Student Name: bill dussler
|
5
|
-
# Homework Week:
|
5
|
+
# Homework Week: 8
|
6
6
|
#
|
7
7
|
|
8
8
|
$: << 'lib'
|
@@ -13,38 +13,112 @@ require 'time'
|
|
13
13
|
require 'lib/member'
|
14
14
|
require 'parse_member'
|
15
15
|
require 'parse_result'
|
16
|
-
require 'pp'
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
class TestParseMember < Test::Unit::TestCase
|
17
|
+
class TestParseResult < Test::Unit::TestCase
|
21
18
|
def setup
|
22
19
|
@stringIO_mock = Proc.new{|file| StringIO.open file }
|
23
20
|
@localFile_mock = Proc.new{|file| open file }
|
24
21
|
@pm = ParseMember.new
|
25
22
|
|
26
23
|
end
|
27
|
-
|
28
|
-
def
|
29
|
-
|
24
|
+
|
25
|
+
def test_parse_no_results
|
26
|
+
member = Person.new({
|
27
|
+
:id => '0137',
|
28
|
+
:first_name => 'william',
|
29
|
+
:last_name => 'dussler',
|
30
|
+
})
|
31
|
+
|
32
|
+
pr = ParseResult.new
|
33
|
+
pr.results(member) {|file| open "test/files/no_results.html"}
|
34
|
+
assert_equal 0, member.results.size
|
30
35
|
end
|
31
36
|
|
32
|
-
def
|
33
|
-
member = Person.new
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
37
|
+
def test_parse_one_result
|
38
|
+
member = Person.new({
|
39
|
+
:id => '0137',
|
40
|
+
:first_name => 'william',
|
41
|
+
:last_name => 'dussler',
|
42
|
+
})
|
43
|
+
|
44
|
+
pr = ParseResult.new
|
45
|
+
pr.results(member) {|file| open "test/files/one_result.html"}
|
46
|
+
assert_equal 1, member.results.size
|
47
|
+
|
48
|
+
assert_equal Time.parse("09/13/2008"), member.results[0].date
|
49
|
+
assert_equal "50055", member.results[0].certificate
|
50
|
+
assert_equal "600", member.results[0].distance
|
51
|
+
assert_equal "ACPB", member.results[0].type
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_parse_multi_years
|
55
|
+
member = Person.new({
|
56
|
+
:id => '0137',
|
57
|
+
:first_name => 'william',
|
58
|
+
:last_name => 'dussler',
|
59
|
+
})
|
60
|
+
|
38
61
|
pr = ParseResult.new
|
39
62
|
pr.results(member, 2008) {|file| open "test/files/dussler_results_2008.html"}
|
63
|
+
pr.results(member, 2006) {|file| open "test/files/dussler_results_2006.html"}
|
40
64
|
|
41
|
-
assert_equal
|
42
|
-
|
43
|
-
|
65
|
+
assert_equal 11, member.results.size
|
66
|
+
|
67
|
+
assert_equal 2, member.awards[2008].size
|
68
|
+
assert_equal 2008, member.awards[2008][0].year
|
69
|
+
assert_equal "RUSA 1570 km", member.awards[2008][0].type
|
70
|
+
assert_equal "Super Randonneur", member.awards[2008][1].type
|
71
|
+
|
72
|
+
assert_equal 1, member.awards[2006].size
|
73
|
+
assert_equal 2006, member.awards[2006][0].year
|
74
|
+
assert_equal "RUSA 2260 km", member.awards[2006][0].type
|
75
|
+
|
76
|
+
assert_equal Time.parse("07/12/2008"), member.results[0].date
|
77
|
+
assert_equal "RUSA-P02782", member.results[0].certificate
|
78
|
+
assert_equal "100", member.results[0].distance
|
79
|
+
assert_equal "RUSAP", member.results[0].type
|
80
|
+
end
|
44
81
|
|
45
|
-
|
46
|
-
|
47
|
-
|
82
|
+
def test_parse_multi_members
|
83
|
+
member1 = Person.new({
|
84
|
+
:id => '0137',
|
85
|
+
:first_name => 'william',
|
86
|
+
:last_name => 'dussler',
|
87
|
+
})
|
88
|
+
|
89
|
+
member2 = Person.new({
|
90
|
+
:id => '0064',
|
91
|
+
:first_name => 'mark',
|
92
|
+
:last_name => 'thomas',
|
93
|
+
})
|
94
|
+
|
95
|
+
pr = ParseResult.new
|
96
|
+
pr.results(member1, 2008) {|file| open "test/files/dussler_results_2008.html"}
|
97
|
+
pr.results(member2, 2008) {|file| open "test/files/thomas_results_2008.html"}
|
98
|
+
|
99
|
+
# first member
|
100
|
+
assert_equal 6, member1.results.size
|
101
|
+
|
102
|
+
assert_equal 2, member1.awards[2008].size
|
103
|
+
assert_equal 2008, member1.awards[2008][0].year
|
104
|
+
assert_equal "RUSA 1570 km", member1.awards[2008][0].type
|
105
|
+
assert_equal "Super Randonneur", member1.awards[2008][1].type
|
106
|
+
assert_equal Time.parse("07/12/2008"), member1.results[0].date
|
107
|
+
assert_equal "RUSA-P02782", member1.results[0].certificate
|
108
|
+
assert_equal "100", member1.results[0].distance
|
109
|
+
assert_equal "RUSAP", member1.results[0].type
|
110
|
+
|
111
|
+
# second member
|
112
|
+
assert_equal 23, member2.results.size
|
113
|
+
assert_equal 1, member2.awards[2008].size
|
114
|
+
assert_equal 2008, member2.awards[2008][0].year
|
115
|
+
assert_equal "RUSA 5549 km", member2.awards[2008][0].type
|
116
|
+
|
117
|
+
assert_equal Time.parse("09/13/2008"), member2.results[22].date
|
118
|
+
assert_equal "50062", member2.results[22].certificate
|
119
|
+
assert_equal "600", member2.results[22].distance
|
120
|
+
assert_equal "ACPB", member2.results[22].type
|
121
|
+
assert_equal "Seattle International Randonneurs / 947018", member2.results[22].organizer
|
48
122
|
|
49
123
|
end
|
50
124
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: RusaMember
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bill dussler
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-12-
|
12
|
+
date: 2008-12-20 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -33,13 +33,45 @@ extra_rdoc_files:
|
|
33
33
|
- History.txt
|
34
34
|
- Manifest.txt
|
35
35
|
- README.txt
|
36
|
+
- test/files/clubMembers.txt
|
37
|
+
- test/files/doe.txt
|
38
|
+
- test/files/dussler.txt
|
39
|
+
- test/files/member_pre.txt
|
40
|
+
- test/files/member_search.txt
|
41
|
+
- test/files/multiSmith.txt
|
42
|
+
- test/files/post.txt
|
43
|
+
- test/files/smith.txt
|
36
44
|
files:
|
37
45
|
- History.txt
|
38
46
|
- Manifest.txt
|
39
47
|
- README.txt
|
40
48
|
- Rakefile
|
41
49
|
- bin/rusa_member
|
50
|
+
- lib/member.rb
|
51
|
+
- lib/parse_member.rb
|
52
|
+
- lib/parse_result.rb
|
42
53
|
- lib/rusa_member.rb
|
54
|
+
- test/files/boston.html
|
55
|
+
- test/files/clubMembers.txt
|
56
|
+
- test/files/doe.txt
|
57
|
+
- test/files/dussler.html
|
58
|
+
- test/files/dussler.txt
|
59
|
+
- test/files/dussler_results_2006.html
|
60
|
+
- test/files/dussler_results_2007.html
|
61
|
+
- test/files/dussler_results_2008.html
|
62
|
+
- test/files/member_pre.txt
|
63
|
+
- test/files/member_search.txt
|
64
|
+
- test/files/multiSmith.txt
|
65
|
+
- test/files/no_results.html
|
66
|
+
- test/files/one_result.html
|
67
|
+
- test/files/post.txt
|
68
|
+
- test/files/smith.html
|
69
|
+
- test/files/smith.txt
|
70
|
+
- test/files/thomas.html
|
71
|
+
- test/files/thomas_results_2008.html
|
72
|
+
- test/html_frags.rb
|
73
|
+
- test/test_parse_member.rb
|
74
|
+
- test/test_parse_results.rb
|
43
75
|
has_rdoc: true
|
44
76
|
homepage: http://rubyforge.org/projects/uwruby
|
45
77
|
post_install_message:
|