Active 0.0.27 → 0.0.28
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/lib/services/activity.rb +4 -4
- data/lib/services/gsa.rb +4 -0
- data/lib/services/reg_center.rb +43 -5
- data/spec/benchmark/search_bench.rb +1 -1
- data/spec/reg_spec.rb +31 -0
- data/version.txt +1 -1
- metadata +3 -3
data/lib/services/activity.rb
CHANGED
@@ -6,9 +6,9 @@ module Active
|
|
6
6
|
class ActivityFindError < StandardError; end
|
7
7
|
|
8
8
|
class Activity < IActivity
|
9
|
-
REG_CENTER_ASSET_TYPE_ID="EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65"
|
10
|
-
REG_CENTER_ASSET_TYPE_ID2="3BF82BBE-CF88-4E8C-A56F-78F5CE87E4C6"
|
11
|
-
ACTIVE_WORKS_ASSET_TYPE_ID="DFAA997A-D591-44CA-9FB7-BF4A4C8984F1"
|
9
|
+
REG_CENTER_ASSET_TYPE_ID = "EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65"
|
10
|
+
REG_CENTER_ASSET_TYPE_ID2 = "3BF82BBE-CF88-4E8C-A56F-78F5CE87E4C6"
|
11
|
+
ACTIVE_WORKS_ASSET_TYPE_ID = "DFAA997A-D591-44CA-9FB7-BF4A4C8984F1"
|
12
12
|
|
13
13
|
attr_accessor :primary, :gsa, :ats
|
14
14
|
attr_reader :datasources_loaded
|
@@ -48,7 +48,7 @@ module Active
|
|
48
48
|
elsif @gsa.asset_type_id == ACTIVE_WORKS_ASSET_TYPE_ID
|
49
49
|
return "ActiveWorks id= #{@gsa.asset_id} type= #{@gsa.asset_type_id}"
|
50
50
|
else
|
51
|
-
return "
|
51
|
+
return "Undefined id= #{@gsa.asset_id} type= #{@gsa.asset_type_id}"
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
data/lib/services/gsa.rb
CHANGED
data/lib/services/reg_center.rb
CHANGED
@@ -42,10 +42,14 @@ module Active
|
|
42
42
|
elsif @data.has_key?("event") && @data["event"].has_key?("registrationUrl")
|
43
43
|
@data["event"]["registrationUrl"]
|
44
44
|
elsif @data.has_key?("event") && @data["event"].has_key?("eventContactUrl")
|
45
|
-
@data["event"]["eventContactUrl"]
|
45
|
+
@data["event"]["eventContactUrl"]
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
+
def event_url
|
50
|
+
@data[:event][:eventUrl]
|
51
|
+
end
|
52
|
+
|
49
53
|
def categories
|
50
54
|
if @data.has_key?("event") && @data["event"].has_key?("channels") && @data["event"]["channels"]!=nil && @data["event"]["channels"].has_key?("channel") && @data["event"]["channels"]["channel"]!=nil
|
51
55
|
channels = @data["event"]["channels"]["channel"]
|
@@ -108,6 +112,10 @@ module Active
|
|
108
112
|
def end_date
|
109
113
|
nil
|
110
114
|
end
|
115
|
+
# The date and time that registration closes
|
116
|
+
def registration_close_date
|
117
|
+
DateTime.parse(@data["event"]["eventCloseDate"])
|
118
|
+
end
|
111
119
|
|
112
120
|
def category
|
113
121
|
primary_category
|
@@ -122,12 +130,12 @@ module Active
|
|
122
130
|
u
|
123
131
|
end
|
124
132
|
|
125
|
-
def
|
133
|
+
def desc_old
|
126
134
|
if @data.has_key?("event") && @data["event"].has_key?("briefDescription")
|
127
|
-
ret
|
128
|
-
if @data["event"].has_key?("eventDetails") && @data["event"]["eventDetails"]!=nil && @data["event"]["eventDetails"].has_key?("eventDetail")
|
135
|
+
ret = @data["event"]["briefDescription"]
|
136
|
+
if @data["event"].has_key?("eventDetails") && @data["event"]["eventDetails"] != nil && @data["event"]["eventDetails"].has_key?("eventDetail")
|
129
137
|
eventDetail = @data["event"]["eventDetails"]["eventDetail"]
|
130
|
-
if eventDetail.class==Array
|
138
|
+
if eventDetail.class == Array
|
131
139
|
@data["event"]["eventDetails"]["eventDetail"].each do |detail|
|
132
140
|
ret +="<div><b>" + detail["eventDetailsName"] + ":</b> " + cleanup_reg_string(detail["eventDetailsValue"]) + "</div>"
|
133
141
|
end
|
@@ -142,6 +150,36 @@ module Active
|
|
142
150
|
end
|
143
151
|
end
|
144
152
|
|
153
|
+
def desc(length = :full)
|
154
|
+
if length == :full
|
155
|
+
@data["event"]["eventDescription"]
|
156
|
+
else
|
157
|
+
@data["event"]["briefDescription"]
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
# Content should be a array of hashes.
|
162
|
+
# [ {:title => "briefDescription", :type => "html", :content => "..." }]
|
163
|
+
#
|
164
|
+
# It should contain everything in briefDescription description and eventDetails.
|
165
|
+
# It should just be one big happy
|
166
|
+
#
|
167
|
+
# TODO: Need to order this by detail[:eventDetailsOrder]
|
168
|
+
# TODO: Add the other description blocks to this
|
169
|
+
def content
|
170
|
+
if @data["event"] and @data["event"]["eventDetails"]
|
171
|
+
|
172
|
+
if @data["event"]["eventDetails"]["eventDetail"].class == Array
|
173
|
+
return @data["event"]["eventDetails"]["eventDetail"].collect { |obj| {:title => obj[:eventDetailsName], :content => obj[:eventDetailsValue]} }
|
174
|
+
else
|
175
|
+
return [{:title => @data["event"]["eventDetails"]["eventDetail"]["eventDetailsName"],:content => @data["event"]["eventDetails"]["eventDetail"]["eventDetailsValue"]}]
|
176
|
+
end
|
177
|
+
|
178
|
+
else
|
179
|
+
return []
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
145
183
|
def cleanup_reg_string(input)
|
146
184
|
input.gsub("\r","").gsub("\n","").gsub("\"","""").gsub("\342\200\234","""").gsub("\342\200\235","""")
|
147
185
|
end
|
data/spec/reg_spec.rb
CHANGED
@@ -131,5 +131,36 @@ describe RegCenter do
|
|
131
131
|
a.start_time.should be_an_instance_of(DateTime)
|
132
132
|
end
|
133
133
|
|
134
|
+
it "should have a valid eventURL" do
|
135
|
+
r = RegCenter.new(Hash.from_xml("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<event>\n <assetID>7e39ceb4-cebb-471f-ace3-21f697ae9e55</assetID>\n <eventID>1802851</eventID>\n <eventName>Rock 'n' Roll San Jose Half Marathon</eventName>\n <eventDate>2010-10-03T08:00:00-07:00</eventDate>\n <eventTime>08:00 am</eventTime>\n <eventLocation>Downtown</eventLocation>\n <eventAddress>Almaden Blvd & Santa Clara Street</eventAddress>\n <eventCity>San Jose</eventCity>\n <eventState>California</eventState>\n <eventZip>95192</eventZip>\n <eventCountry>USA</eventCountry>\n <briefDescription>Registration Fees:* \t \n<p> \n1/2 Marathon \n<p> \n * $85.00 \342\200\223 October 2009- July 31, 2010<br> \n * $100.00 \342\200\223 August 1, 2010- September 26<br> \n * $120.00 \342\200\223 Expo Price<br> \n<p> \n*Registration fees are non-refundable and non-transferable. Fees listed above do not include the Active Network processing fee. NO RACE DAY REGISTRATION</briefDescription>\n <usatSanctioned>false</usatSanctioned>\n <regOnline>false</regOnline>\n <currencyCode>USD</currencyCode>\n <eventTypeID>7</eventTypeID>\n <eventType>Event, Race</eventType>\n <hasEventResults>false</hasEventResults>\n <hasMetaResults>true</hasMetaResults>\n <showMap>true</showMap>\n <longitude>-121.8818</longitude>\n <latitude>37.3359</latitude>\n <eventContactEmail>rnrsj@eliteracing.com</eventContactEmail>\n <eventContactPhone>800-311-1255</eventContactPhone>\n <displayCloseDate>true</displayCloseDate>\n <excludedFromEmailing>false</excludedFromEmailing>\n <metaEventName>Rock 'n' Roll Half Marathon</metaEventName>\n <metaEventID>98616</metaEventID>\n <category>Activities</category>\n <mediaTypes>\n <mediaType>Event</mediaType>\n <mediaType>Event\\Half Marathon</mediaType>\n <mediaType>=difficulty:Advanced</mediaType>\n <mediaType>=difficulty:Beginner</mediaType>\n <mediaType>=difficulty:Intermediate</mediaType>\n </mediaTypes>\n <metaEvents>\n <event>\n <assetID>a401eaf3-6087-4dd2-822c-635a7ae45e74</assetID>\n <eventID>1614834</eventID>\n <eventName>Rock 'n' Roll Half Marathon - San Jose</eventName>\n <eventDate>2009-10-04T08:00:00-07:00</eventDate>\n <eventDetailsPageUrl>http://www.active.com/page/Event_Details.htm?event_id=1614834</eventDetailsPageUrl>\n </event>\n </metaEvents>\n <channels>\n <channel>\n <channelName>Running</channelName>\n <primaryChannel>true</primaryChannel>\n </channel>\n </channels>\n <eventCategories/>\n <eventDetails>\n <eventDetail>\n <eventDetailsName>Online Registration Closes</eventDetailsName>\n <eventDetailsOrder>1</eventDetailsOrder>\n <eventDetailsValue>Sunday, September 26, 2010</eventDetailsValue>\n </eventDetail>\n </eventDetails>\n <eventDonationLinks/>\n <eventSanctions/>\n <eventUrl>http://san-jose.competitor.com</eventUrl>\n <resultsUrl>http://results.active.com/pages/page.jsp?pubID=3&eventID=1802851</resultsUrl>\n <eventDetailsPageUrl>http://www.active.com/page/Event_Details.htm?event_id=1802851</eventDetailsPageUrl>\n <eventContactUrl>http://www.active.com/event_contact.cfm?event_id=1802851</eventContactUrl>\n <eventImageUrl>http://www.active.com/images/upimages/1802851.jpg</eventImageUrl>\n</event>\n"))
|
136
|
+
r.event_url.should eql("http://san-jose.competitor.com")
|
137
|
+
end
|
138
|
+
|
139
|
+
it "should have a valid content" do
|
140
|
+
r = RegCenter.new(Hash.from_xml('<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <event> <assetID>5c6fa2f2-0434-4d6c-953d-cab9bade4f64</assetID> <eventID>1877942</eventID> <eventName>Realistic Drawing (6-12 Yrs.)</eventName> <eventDate>2010-09-16T15:30:00-07:00</eventDate> <eventTime>3:30 PM</eventTime> <eventLocation>Arts & Crafts Room - Nick Rodriguez Community Center</eventLocation> <eventAddress>213 "F" Street</eventAddress> <eventCity>Antioch</eventCity> <eventState>California</eventState> <eventZip>94509</eventZip> <eventCountry>USA</eventCountry> <eventDescription>Do you love to draw?Learn how to make your drawings more realistic with projects that focus on observation,proportion,perspective,composition,light and shadow and texture.Media will include pencil,pen,charcoal,and pastel.A &10 materials fee is payable to the instuctor at the first class.</eventDescription> <usatSanctioned>false</usatSanctioned> <regOnline>true</regOnline> <eventCloseDate>2010-09-16T00:00:00-07:00</eventCloseDate> <currencyCode>USD</currencyCode> <eventTypeID>1</eventTypeID> <eventType>Recware Activities</eventType> <hasEventResults>false</hasEventResults> <hasMetaResults>false</hasMetaResults> <showMap>true</showMap> <longitude>-121.8058</longitude> <latitude>38.00492</latitude> <eventContactEmail>dadams@ci.antioch.ca.us</eventContactEmail> <eventContactPhone>925-779-7070</eventContactPhone> <displayCloseDate>true</displayCloseDate> <excludedFromEmailing>false</excludedFromEmailing> <category>Activities</category> <mediaTypes> <mediaType>Recware Activities</mediaType> </mediaTypes> <channels> <channel> <primaryChannel>false</primaryChannel> </channel> </channels> <eventCategories/> <eventDetails> <eventDetail> <eventDetailsName>Ages</eventDetailsName> <eventDetailsOrder>1</eventDetailsOrder> <eventDetailsValue>6 years - 12 years 11months</eventDetailsValue> </eventDetail> <eventDetail> <eventDetailsName>Instructor</eventDetailsName> <eventDetailsOrder>2</eventDetailsOrder> <eventDetailsValue>Nancy Roberts</eventDetailsValue> </eventDetail> <eventDetail> <eventDetailsName>Code</eventDetailsName> <eventDetailsOrder>3</eventDetailsOrder> <eventDetailsValue>1447.401</eventDetailsValue> </eventDetail> <eventDetail> <eventDetailsName>Classification</eventDetailsName> <eventDetailsOrder>4</eventDetailsOrder> <eventDetailsValue>Art</eventDetailsValue> </eventDetail> <eventDetail> <eventDetailsName>Schedule</eventDetailsName> <eventDetailsOrder>5</eventDetailsOrder> <eventDetailsValue>Occurs every week on Thursday effective 9/16/10 until 10/21/10 from 3:30 PM to 4:30 PM</eventDetailsValue> </eventDetail> </eventDetails> <eventDonationLinks/> <eventSanctions/> <eventDetailsPageUrl>http://www.active.com/page/Event_Details.htm?event_id=1877942</eventDetailsPageUrl> <eventContactUrl>http://www.active.com/event_contact.cfm?event_id=1877942</eventContactUrl> </event>'))
|
141
|
+
r.content.should be_an_instance_of(Array)
|
142
|
+
r.content[0][:title].should eql("Ages")
|
143
|
+
r.content[1][:title].should eql("Instructor")
|
144
|
+
r.content[2][:title].should eql("Code")
|
145
|
+
r.content[3][:title].should eql("Classification")
|
146
|
+
r.content[4][:title].should eql("Schedule")
|
147
|
+
|
148
|
+
r.content[0][:content].should eql("6 years - 12 years 11months")
|
149
|
+
r.content[1][:content].should eql("Nancy Roberts")
|
150
|
+
r.content[2][:content].should eql("1447.401")
|
151
|
+
r.content[3][:content].should eql("Art")
|
152
|
+
r.content[4][:content].should eql("Occurs every week on Thursday effective 9/16/10 until 10/21/10 from 3:30 PM to 4:30 PM")
|
153
|
+
end
|
154
|
+
|
155
|
+
it "should handle not having extra content" do
|
156
|
+
r = RegCenter.new(Hash.from_xml('<?xml version="1.0" encoding="UTF-8" standalone="yes"?><event> <assetID>396e12ba-d496-4d3c-ad76-4ac581ac7628</assetID> <eventID>1893115</eventID> <eventName>San Francisco Halloween Run & Walk for Schools</eventName> <eventDate>2010-10-31T08:30:00-07:00</eventDate> <eventTime>Mile starts 8:30 AM, 5K starts 9 AM</eventTime> <eventLocation>John F. Kennedy Drive at Middle Drive in Golden Gate Park.</eventLocation> <eventCity>San Francisco</eventCity> <eventState>California</eventState> <eventZip>94117</eventZip> <eventCountry>USA</eventCountry> <briefDescription>Both the 5K and mile are USATF Certified distances that visit some of Golden Gate Park’s best views. <b>The Jefferson Mile is the 2010 RRCA California State Championship Mile. It Starts 8:30 AM</b>. <b>The 5K is flat and fast with a couple of easy hills and Starts 9 AM on JFK, East of the Conservatory of Flowers. Certified Maps at PeopleEvents.org</b></briefDescription> <eventDescription>Awards 3 deep in all divisions 8 & under to 80+ Prizes for winners, top pledge collector and random drawing. We feature online Finish Videos and post downloadable Finish Line Photos.</eventDescription> <usatSanctioned>false</usatSanctioned> <regOnline>true</regOnline> <eventCloseDate>2010-10-30T11:59:00-07:00</eventCloseDate> <eventFees>5K or Mile: $25 includes T-shirt until 10/19, $30 after<p>Combo (Mile & 5K): $30 until 10/19, $35 after<p>Kids 12 & under w/t-shirt: $15 until 10/19</eventFees> <currencyCode>USD</currencyCode> <eventTypeID>7</eventTypeID> <eventType>Event, Race</eventType> <hasEventResults>false</hasEventResults> <hasMetaResults>false</hasMetaResults> <showMap>false</showMap> <longitude>-122.4438929</longitude> <latitude>37.7717185</latitude> <eventContactEmail>Bill_Dake@peopleevents.org</eventContactEmail> <eventContactPhone>650 291-8531</eventContactPhone> <displayCloseDate>true</displayCloseDate> <excludedFromEmailing>false</excludedFromEmailing> <category>Activities</category> <mediaTypes> <mediaType>Event</mediaType> <mediaType>Event\1 mile</mediaType> <mediaType>Event\5K</mediaType> </mediaTypes> <channels> <channel> <channelName>Running</channelName> <primaryChannel>true</primaryChannel> </channel> </channels> <eventCategories/> <eventDetails> <eventDetail> <eventDetailsName>Event Flyer</eventDetailsName> <eventDetailsOrder>1</eventDetailsOrder> <eventDetailsValue><a href=http://www.eteamz.com/activeactive1/files/0913halloweenentryv5-new.pdf> Click Here to View Event Flyer</a></eventDetailsValue> </eventDetail> </eventDetails> <eventDonationLinks> <eventDonationLink> <eventDonationLinkID>158285</eventDonationLinkID> <eventDonationLinkTitle>SF Halloween Run & Walk for Schools</eventDonationLinkTitle> <eventDonationLinkUrl>http://www.active.com/donate/sfrunwalkforschools</eventDonationLinkUrl> </eventDonationLink> </eventDonationLinks> <eventSanctions/> <eventUrl>http://www.PeopleEvents.org</eventUrl> <eventDetailsPageUrl>http://www.active.com/page/Event_Details.htm?event_id=1893115</eventDetailsPageUrl> <eventContactUrl>http://www.active.com/event_contact.cfm?event_id=1893115</eventContactUrl> <eventImageUrl>http://www.active.com/images/upimages/halloween10_blk.jpg</eventImageUrl></event>'))
|
157
|
+
r.content.should be_an_instance_of(Array)
|
158
|
+
r.content[0][:title].should eql("Event Flyer")
|
159
|
+
r.content[0][:content].should eql("<a href=http://www.eteamz.com/activeactive1/files/0913halloweenentryv5-new.pdf> Click Here to View Event Flyer</a>")
|
160
|
+
end
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
134
165
|
|
135
166
|
end
|
data/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.28
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 28
|
9
|
+
version: 0.0.28
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jonathan Spooner, Brian Levine
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-11-02 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|