Active 0.0.42 → 0.1.7

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.
Files changed (54) hide show
  1. data/.gitignore +6 -0
  2. data/.irbrc +21 -0
  3. data/.rspec +1 -0
  4. data/.rvmrc +2 -0
  5. data/Active.gemspec +28 -29
  6. data/Gemfile +4 -0
  7. data/History.txt +5 -2
  8. data/{README.txt → README.md} +4 -20
  9. data/Rakefile +11 -17
  10. data/lib/Active.rb +11 -79
  11. data/lib/active/activity.rb +7 -0
  12. data/lib/active/article.rb +7 -0
  13. data/lib/active/asset.rb +205 -0
  14. data/lib/active/errors.rb +9 -0
  15. data/lib/active/query.rb +225 -0
  16. data/lib/active/result.rb +7 -0
  17. data/lib/active/results.rb +6 -0
  18. data/lib/active/training.rb +7 -0
  19. data/lib/active/version.rb +3 -0
  20. data/lib/ext/hash_extensions.rb +8 -0
  21. data/spec/asset_spec.rb +47 -0
  22. data/spec/search_spec.rb +383 -432
  23. data/spec/spec_helper.rb +23 -2
  24. metadata +113 -116
  25. data/bin/Active +0 -7
  26. data/lib/.DS_Store +0 -0
  27. data/lib/services/.DS_Store +0 -0
  28. data/lib/services/IActivity.rb +0 -39
  29. data/lib/services/_ats.rb +0 -215
  30. data/lib/services/active_works.rb +0 -167
  31. data/lib/services/activity.rb +0 -512
  32. data/lib/services/address.rb +0 -17
  33. data/lib/services/ats.rb +0 -229
  34. data/lib/services/dto/user.rb +0 -9
  35. data/lib/services/gsa.rb +0 -205
  36. data/lib/services/reg_center.rb +0 -270
  37. data/lib/services/sanitize.rb +0 -108
  38. data/lib/services/search.rb +0 -494
  39. data/lib/services/validators.rb +0 -124
  40. data/rspec-tm +0 -1
  41. data/rvmrc +0 -1
  42. data/spec/.DS_Store +0 -0
  43. data/spec/Active_spec.rb +0 -28
  44. data/spec/activeworks_spec.rb +0 -60
  45. data/spec/activity_spec.rb +0 -421
  46. data/spec/ats_spec.rb +0 -106
  47. data/spec/benchmark/search_bench.rb +0 -55
  48. data/spec/custom_matchers_spec.rb +0 -27
  49. data/spec/gsa_spec.rb +0 -210
  50. data/spec/reg_spec.rb +0 -173
  51. data/spec/search_memcached_spec.rb +0 -42
  52. data/spec/validators_spec.rb +0 -19
  53. data/test/test_Active.rb +0 -0
  54. data/version.txt +0 -1
@@ -1,124 +0,0 @@
1
- module Active
2
- module Services
3
- class Validators
4
-
5
- def self.email arg
6
- if (arg =~ /((\w|-)+(\.\w+)?)+@\w+\.\w+/) == nil
7
- # if (arg =~ /^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/) == nil
8
- return false
9
- else
10
- return true
11
- end
12
- end
13
-
14
- # return true or false
15
- # very short check for 5 consecutive digits, no leading or trailing whitespace.
16
- def self.zip(arg)
17
- # if (arg =~ /\be(\w*)/) != -1
18
- # true
19
- # else
20
- # false
21
- # end
22
- end
23
-
24
- def self.state
25
- true
26
- end
27
-
28
- def self.city
29
- false
30
- end
31
-
32
- def self.address
33
- false
34
- end
35
-
36
- STATES = [
37
- [ "Alabama", "AL" ],
38
- [ "Alaska", "AK" ],
39
- [ "Arizona", "AZ" ],
40
- [ "Arkansas", "AR" ],
41
- [ "California", "CA" ],
42
- [ "Colorado", "CO" ],
43
- [ "Connecticut", "CT" ],
44
- [ "Delaware", "DE" ],
45
- [ "District Of Columbia", "DC" ],
46
- [ "Florida", "FL" ],
47
- [ "Georgia", "GA" ],
48
- [ "Hawaii", "HI" ],
49
- [ "Idaho", "ID" ],
50
- [ "Illinois", "IL" ],
51
- [ "Indiana", "IN" ],
52
- [ "Iowa", "IA" ],
53
- [ "Kansas", "KS" ],
54
- [ "Kentucky", "KY" ],
55
- [ "Louisiana", "LA" ],
56
- [ "Maine", "ME" ],
57
- [ "Maryland", "MD" ],
58
- [ "Massachusetts", "MA" ],
59
- [ "Michigan", "MI" ],
60
- [ "Minnesota", "MN" ],
61
- [ "Mississippi", "MS" ],
62
- [ "Missouri", "MO" ],
63
- [ "Montana", "MT" ],
64
- [ "Nebraska", "NE" ],
65
- [ "Nevada", "NV" ],
66
- [ "New Hampshire", "NH" ],
67
- [ "New Jersey", "NJ" ],
68
- [ "New Mexico", "NM" ],
69
- [ "New York", "NY" ],
70
- [ "North Carolina", "NC" ],
71
- [ "North Dakota", "ND" ],
72
- [ "Ohio", "OH" ],
73
- [ "Oklahoma", "OK" ],
74
- [ "Oregon", "OR" ],
75
- [ "Pennsylvania", "PA" ],
76
- [ "Rhode Island", "RI" ],
77
- [ "South Carolina", "SC" ],
78
- [ "South Dakota", "SD" ],
79
- [ "Tennessee", "TN" ],
80
- [ "Texas", "TX" ],
81
- [ "Utah", "UT" ],
82
- [ "Vermont", "VT" ],
83
- [ "Virginia", "VA" ],
84
- [ "Washington", "WA" ],
85
- [ "West Virginia", "WV" ],
86
- [ "Wisconsin", "WI" ],
87
- [ "Wyoming", "WY" ]
88
- ]
89
-
90
- def self.full_name(abbr)
91
- STATES.find do |i|
92
- if i[1] == abbr.upcase
93
- return i[0]
94
- end
95
- end
96
- return nil
97
- end
98
-
99
- def self.valid_state(name)
100
- return nil if name.nil?
101
- STATES.find do |i|
102
- if i[0].upcase==name.strip.upcase
103
- return i[0]
104
- elsif i[1] == name.upcase
105
- return i[0]
106
- end
107
- end
108
- return nil
109
- end
110
-
111
- # NO MODIFYING IN A VALIDATION CLASS
112
- # !! clean zip
113
- # (http://geekswithblogs.net/MainaD/archive/2007/12/03/117321.aspx)
114
- def self.valid_zip(zip)
115
- if zip!="00000" && zip.to_s.strip=~/(^\d{5}(-\d{4})?$)|(^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$)/
116
- return zip.to_s.strip
117
- else
118
- return nil
119
- end
120
- end
121
- end
122
-
123
- end
124
- end
data/rspec-tm DELETED
@@ -1 +0,0 @@
1
- --rspec-version 1.3.1
data/rvmrc DELETED
@@ -1 +0,0 @@
1
-
Binary file
@@ -1,28 +0,0 @@
1
- # Require the spec helper relative to this file
2
- require File.join(File.dirname(__FILE__), %w[spec_helper])
3
- require File.join(File.dirname(__FILE__), %w[custom_matchers_spec])
4
- require File.join(File.dirname(__FILE__), %w[ .. lib services search])
5
- require File.join(File.dirname(__FILE__), %w[ .. lib services activity])
6
- include Active
7
- include Active::Services
8
-
9
-
10
- describe Active do
11
-
12
- it "shouls set memcache" do
13
- Active.CACHE.should be_nil
14
- Active.memcache_host "localhost:11211"
15
- Active.CACHE.should_not be_nil
16
- end
17
-
18
- it "should have a working memcache" do
19
- Active.memcache_host "localhost:11211"
20
- Active.CACHE.set("active","rocks");
21
- Active.CACHE.get("active").should eql("rocks")
22
- end
23
-
24
- it "should cache the data" do
25
- Active.memcache_host "localhost:11211"
26
- end
27
-
28
- end
@@ -1,60 +0,0 @@
1
- # Require the spec helper relative to this file
2
- require File.join(File.dirname(__FILE__), %w[spec_helper])
3
- require File.join(File.dirname(__FILE__), %w[custom_matchers_spec])
4
- require File.join(File.dirname(__FILE__), %w[ .. lib services search])
5
- require File.join(File.dirname(__FILE__), %w[ .. lib services activity])
6
- require File.join(File.dirname(__FILE__), %w[ .. lib services reg_center])
7
- include Active::Services
8
-
9
- describe ActiveWorks do
10
- before(:each) do
11
- @valid_id = "E-00072ZDN"
12
- end
13
- it "should set find by id" do
14
- a = ActiveWorks.find_by_id(@valid_id)
15
- a.data["id"].should == @valid_id
16
- end
17
- it "should have a nil user email" do
18
- a = ActiveWorks.find_by_id(@valid_id)
19
- a.user.email.should be_nil
20
- end
21
- it "should set the asset_type_id" do
22
- ActiveWorks.find_by_id(@valid_id).asset_type_id.should_not be_nil
23
- end
24
- it "should thorw an ActiveWorksError if no record is found" do
25
- lambda { ActiveWorks.find_by_id( "666" ) }.should raise_error(ActiveWorksError)
26
- end
27
- it "should get the API metadata" do
28
- a = ActiveWorks.find_by_id(@valid_id)
29
- a.data["eventDetailDto"].should_not be_nil
30
- end
31
- it "should have an address Hash" do
32
- a = ActiveWorks.find_by_id(@valid_id)
33
- a.address.should be_an_instance_of(HashWithIndifferentAccess)
34
- end
35
- it "should have a desc" do
36
- a = ActiveWorks.find_by_id(@valid_id)
37
- a.desc.should_not == ""
38
- a.desc.should_not == nil
39
- end
40
- it "should cleanup desc" do
41
- a = ActiveWorks.find_by_id(@valid_id)
42
- puts a.desc
43
- a.desc.should_not include('\"')
44
- end
45
- it "should have a title String" do
46
- a = ActiveWorks.find_by_id(@valid_id)
47
- a.title.should be_an_instance_of(String)
48
- end
49
- it "should have a start_date DateTime" do
50
- a = ActiveWorks.find_by_id(@valid_id)
51
- puts a.start_date
52
- a.start_date.should be_an_instance_of(DateTime)
53
- end
54
- it "should have a start_time DateTime" do
55
- a = ActiveWorks.find_by_id(@valid_id)
56
- a.start_time.should be_an_instance_of(DateTime)
57
- end
58
-
59
-
60
- end
@@ -1,421 +0,0 @@
1
- # Require the spec helper relative to this file
2
- require File.join(File.dirname(__FILE__), %w[spec_helper])
3
- require File.join(File.dirname(__FILE__), %w[ .. lib services search])
4
- require File.join(File.dirname(__FILE__), %w[ .. lib services activity])
5
- require File.join(File.dirname(__FILE__), %w[ .. lib services IActivity])
6
-
7
- # No need to type Britify:: before each call
8
- include Active::Services
9
-
10
- describe Activity do
11
- describe "Creating an activity from a GSA object" do
12
- before(:each) do
13
- @a = Activity.new( GSA.new(JSON.parse('{"escapedUrl":"http://www.active.com/triathlon/oceanside-ca/rohto-ironman-703-california-2011","language":"en","title":"2011 Rohto Ironman 70.3 California | Oceanside, California \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/triathlon/oceanside-ca/rohto-ironman-703-california-2011","summary":"","meta":{"eventDate":"2011-04-02T00:00:00-07:00","location":"Oceanside Harbor","tag":["event:10","Triathlon:10"],"eventLongitude":"-117.3586","endDate":"2011-04-02","locationName":"Oceanside Harbor","lastModifiedDateTime":"2010-09-30 06:16:05.107","splitMediaType":["Event","Ironman","Long Course"],"endTime":"0:00:00","city":"Oceanside","google-site-verification":"","startTime":"0:00:00","eventId":"1838902","description":"","longitude":"-117.3586","substitutionUrl":"1838902","sortDate":"2001-04-02","eventState":"California","eventLatitude":"33.19783","keywords":"Event","eventAddress":"1540 Harbor Drive North","dma":"San Diego","seourl":"http://www.active.com/triathlon/oceanside-ca/rohto-ironman-703-california-2011","country":"United States","category":"Activities","market":"San Diego","contactName":"World Triathlon Corporation","assetTypeId":"3BF82BBE-CF88-4E8C-A56F-78F5CE87E4C6","eventZip":"92054","UpdateDateTime":"9/22/2010 11:46:24 AM","latitude":"33.19783","startDate":"2011-04-02","state":"California","mediaType":["Event","Event\\Ironman","Event\\Long Course"],"estParticipants":"2500","assetId":["77ACABBD-BA83-4C78-925D-CE49DEDDF20C","77acabbd-ba83-4c78-925d-ce49deddf20c"],"participationCriteria":"All","onlineDonationAvailable":"0","assetName":["2011 Rohto Ironman 70.3 California","2011 Rohto Ironman 70.3 California"],"zip":"92054","eventURL":"http://www.ironmancalifornia.com/","contactPhone":"813-868-5940","contactEmail":"california70.3@ironman.com","onlineMembershipAvailable":"0","trackbackurl":"http://www.active.com/triathlon/oceanside-ca/rohto-ironman-703-california-2011","onlineRegistrationAvailable":"true","image1":"http://www.active.com/images/events/hotrace.gif","lastModifiedDate":"2010-09-30","channel":"Triathlon"}}')) )
14
- @ats_activity = Activity.new(ATS.new( {"destinationID"=>"", "assetId"=>"EEBC04D9-EA80-46C6-B9DD-6EBF49F8678F", "substitutionUrl"=>"1875345", "city"=>"San Francisco", "contactName"=>"Pete Berg", "trackbackurl"=>"http://www.active.com/page/Event_Details.htm?event_id=1875345&assetId=EEBC04D9-EA80-46C6-B9DD-6EBF49F8678F", :asset_id=>"EEBC04D9-EA80-46C6-B9DD-6EBF49F8678F", "category"=>"Activities", "zip"=>"94111", "userCommentText"=>nil, "location"=>"San Francisco metro area", "latitude"=>"37.7983181", :asset_type_name=>"Active.com Event Registration", "searchWeight"=>"1", "country"=>"United States", "participationCriteria"=>"Adult,Family,Kids,Men,Women", "dma"=>"San Francisco - Oakland - San Jose", :asset_name=>"URBAN HUNT: San Francisco", :asset_type_id=>"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65", "isSearchable"=>"true", :xmlns=>"http://api.asset.services.active.com", :url=>"http://www.active.com/page/Event_Details.htm?event_id=1875345", "row"=>"1", "image1"=>nil, "startDate"=>"2010-10-16", "contactPhone"=>"607-222-9845", "onlineDonationAvailable"=>"0", "avgUserRating"=>nil, "market"=>"San Francisco - Oakland - San Jose", :substitution_url=>"1875345", "assetTypeId"=>"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65", "assetName"=>"URBAN HUNT: San Francisco", "channel"=>["More Sports\\Adventure Racing", "Running"], "seourl"=>"http://www.active.com/running/san-francisco-ca/urban-hunt-san-francisco-2010", "mediaType"=>["Event", "Event\\5 mile", "=difficulty:Beginner", "=difficulty:Intermediate"], "startTime"=>"11:00:00", "endTime"=>"11:00:00", "contactEmail"=>"info@realityrush.com", "eventResults"=>nil, "longitude"=>"-122.4000032", "endDate"=>"2010-10-16", "onlineRegistrationAvailable"=>"false", "onlineMembershipAvailable"=>"0", "state"=>"California", "estParticipants"=>"100", "eventURL"=>"http://www.realityrush.com/events/urban-hunt-san-francisco-oct-16th-2010/"}))
15
- end
16
- it "should have online registration" do
17
- @a.online_registration.should be_true
18
- end
19
- it "should have asset ids" do
20
- @a.asset_id.should_not be_nil
21
- @a.asset_id.should eql("77ACABBD-BA83-4C78-925D-CE49DEDDF20C")
22
- @a.asset_type_id.should_not be_nil
23
- @a.asset_type_id.should eql("3BF82BBE-CF88-4E8C-A56F-78F5CE87E4C6")
24
- end
25
- it "should have a title" do
26
- g = GSA.new(JSON.parse('{"title":"2011 Rohto Ironman 70.3 California\u003cb\u003e...\u003c/b\u003e | Oceanside, California \u003cb\u003e...\u003c/b\u003e"}'))
27
- g.source.should eql(:gsa)
28
- g.title.should eql("2011 Rohto Ironman 70.3 California")
29
- a = Activity.new( g )
30
- a.gsa.should_not be_nil
31
- a.title.should eql("2011 Rohto Ironman 70.3 California")
32
- end
33
- # start date
34
- it "should have a valid start date" do
35
- @a.start_date.should_not be_nil
36
- @a.start_date.should be_an_instance_of(DateTime)
37
- end
38
- it "should have nil is no date" do
39
- a = Activity.new( GSA.new(JSON.parse('{"title":"Calabasas Classic 2010 - 5k \u003cb\u003e10k\u003c/b\u003e Runs | Calabasas, California 91302 \u003cb\u003e...\u003c/b\u003e"}')) )
40
- a.start_date.should be_nil
41
- end
42
- # end date
43
- it "should have a valid end date" do
44
- @a.end_date.should_not be_nil
45
- @a.end_date.should be_an_instance_of(DateTime)
46
- end
47
- it "should have nil is no date" do
48
- a = Activity.new( GSA.new(JSON.parse('{"title":"Calabasas Classic 2010 - 5k \u003cb\u003e10k\u003c/b\u003e Runs | Calabasas, California 91302 \u003cb\u003e...\u003c/b\u003e"}')) )
49
- a.end_date.should be_nil
50
- end
51
- # start time
52
- it "should have a valid start date" do
53
- @a.start_time.should_not be_nil
54
- @a.start_time.should be_an_instance_of(DateTime)
55
- end
56
- it "should have nil is no date" do
57
- g = GSA.new(JSON.parse('{"title":"Calabasas Classic 2010 - 5k \u003cb\u003e10k\u003c/b\u003e Runs | Calabasas, California 91302 \u003cb\u003e...\u003c/b\u003e"}'))
58
- g.start_time.should be_nil
59
- end
60
- # end time
61
- it "should have a valid end date" do
62
- @a.start_time.should_not be_nil
63
- @a.start_time.should be_an_instance_of(DateTime)
64
- end
65
- it "should have nil is no date" do
66
- g = GSA.new(JSON.parse('{"title":"Calabasas Classic 2010 - 5k \u003cb\u003e10k\u003c/b\u003e Runs | Calabasas, California 91302 \u003cb\u003e...\u003c/b\u003e"}'))
67
- g.start_time.should be_nil
68
- end
69
- # asset_id
70
- it "should have nil is no date" do
71
- g = Activity.new GSA.new(JSON.parse('{"title":"Calabasas Classic 2010 - 5k \u003cb\u003e10k\u003c/b\u003e Runs | Calabasas, California 91302 \u003cb\u003e...\u003c/b\u003e"}'))
72
- g.start_time.should be_nil
73
- end
74
- it "should have an asset_id" do
75
- Activity.new(GSA.new).asset_id.should be_nil
76
- @a.asset_id.should_not be_nil
77
- end
78
- it "should have an asset_type_id" do
79
- Activity.new(GSA.new).asset_type_id.should be_nil
80
- @a.asset_type_id.should_not be_nil
81
- end
82
- #address
83
- it "should have a full address" do
84
- g = Activity.new (GSA.new(JSON.parse('{"title":"Calabasas", "meta":{"location":"Oceanside Harbor","eventLongitude":"-117.3586","locationName":"Oceanside Harbor","eventAddress":"1540 Harbor Drive North", "city":"San Diego", "eventState":"CA", "eventZip":"92121", "latitude":"-22", "longitude":"222", "country":"USA" }}')) )
85
- g.address.should_not be_nil
86
- g.address[:name].should eql("Oceanside Harbor")
87
- g.address[:address].should eql("1540 Harbor Drive North")
88
- g.address[:city].should eql("San Diego")
89
- g.address[:state].should eql("CA")
90
- g.address[:zip].should eql("92121")
91
- g.address[:country].should eql("USA")
92
- g.address[:lat].should eql("-22")
93
- g.address[:lng].should eql("222")
94
- end
95
- it "should have a partial address that it's full data doesn't live in WORKS or REGCENTER" do
96
- g = Activity.new(GSA.new(JSON.parse('{"language":"en", "title":"Zumba Punch Card (Adult) - Oct. (5) | Vista, CA, 92084 |", "url":"http://www.active.com/community-services-class/vista-ca/zumba-punch-card-adult-oct-5-2010", "escapedUrl":"http://www.active.com/community-services-class/vista-ca/zumba-punch-card-adult-oct-5-2010", "meta":{"city":"Vista", "assetId":"3ae995d9-5c16-4176-b44e-fa0577644ca4", "substitutionUrl":"vistarecreation/registrationmain.sdi?source=showAsset.sdi&activity_id=4900", "trackbackurl":"http://www.active.com/community-services-class/vista-ca/zumba-punch-card-adult-oct-5-2010", "onlineRegistrationAvailable":"false", "zip":"92084", "sortDate":"2000-10-02", "category":"Activities", "latitude":"33.2000368", "dma":"San Diego", "lastModifiedDate":"2010-09-29", "tags":"2348.321", "lastModifiedDateTime":"2010-09-29 16:46:43.33", "country":"United States of America", "startDate":"2010-10-02", "assetName":"Zumba Punch Card (Adult) - Oct. (5)", "summary":"People of all ages are falling in love with Zumba, one of the fastest growing dance-based fitness crazes in the country. With Zumbas easy-to-follow dance moves you receive body beautifying benefits while enjoying Latin rhythms including Salsa, Meringue, Cumbia, Reggaeton, even belly dance and hip-hop. Zumba is ", "description":"", "seourl":"http://www.active.com/community-services-class/vista-ca/zumba-punch-card-adult-oct-5-2010", "channel":"Community Services", "splitMediaType":"Class", "mediaType":"Class", "longitude":"-117.2425355", "UpdateDateTime":"8/20/2008 9:03:50 AM", "assetTypeId":"FB27C928-54DB-4ECD-B42F-482FC3C8681F", "state":"California", "keywords":""}, "summary":""}')))
97
- g.address[:name].should be_nil # eql("City of Vista Recreation")
98
- g.address[:address].should be_nil # eql("200 Civic Center Dr.")
99
- g.address[:city].should eql("Vista")
100
- g.address[:state].should eql("California")
101
- g.address[:zip].should eql("92084")
102
- g.address[:country].should eql("United States of America")
103
- g.address[:lat].should eql("33.2000368")
104
- g.address[:lng].should eql("-117.2425355")
105
- end
106
- it "should have an address from this hash with null name and address" do
107
- g = Activity.new(GSA.new(JSON.parse('{"escapedUrl":"http://www.active.com/cycling/san-francisco-ca/california-wine-country-bike-tours-in-october-2010","language":"en","title":"2010 California Wine Country Bike Tours in October | San \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/cycling/san-francisco-ca/california-wine-country-bike-tours-in-october-2010","summary":"","meta":{"startDate":"2010-10-10","eventDate":"2010-10-10T00:00:00-07:00","state":"California","endDate":"2010-10-22","eventLongitude":"-122.4200000","lastModifiedDateTime":"2010-08-26 02:15:54.36","splitMediaType":"Event","endTime":"0:00:00","mediaType":"Event","city":"San Francisco","google-site-verification":"","estParticipants":"2000","startTime":"0:00:00","assetId":["81A4A089-CAB5-4293-BFBF-87C74A1C6370","81a4a089-cab5-4293-bfbf-87c74a1c6370"],"eventId":"1889827","participationCriteria":"All","description":"","longitude":"-122.4200000","onlineDonationAvailable":"0","substitutionUrl":"1889827","assetName":["2010 California Wine Country Bike Tours in October","2010 California Wine Country Bike Tours in October"],"eventURL":"http://www.trektravel.com/contentpage.cfm?ID\u003d703","zip":"94101","contactPhone":"866-464-8735","eventLatitude":"37.7800000","eventState":"California","sortDate":"2000-10-10","keywords":"Event","onlineMembershipAvailable":"0","dma":"San Francisco - Oakland - San Jose","trackbackurl":"http://www.active.com/cycling/san-francisco-ca/california-wine-country-bike-tours-in-october-2010","seourl":"http://www.active.com/cycling/san-francisco-ca/california-wine-country-bike-tours-in-october-2010","country":"United States","onlineRegistrationAvailable":"0","category":"Activities","market":"San Francisco - Oakland - San Jose","assetTypeId":"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65","lastModifiedDate":"2010-08-26","eventZip":"94101","UpdateDateTime":"8/18/2010 10:16:26 AM","latitude":"37.7800000","channel":"Cycling"}}')))
108
- g.address[:name].should be_nil
109
- g.address[:address].should be_nil
110
- g.address[:city].should eql("San Francisco")
111
- g.address[:state].should eql("California")
112
- g.address[:zip].should eql("94101")
113
- g.address[:country].should eql("United States")
114
- g.address[:lat].should eql("37.7800000")
115
- g.address[:lng].should eql("-122.4200000")
116
- end
117
-
118
- # TODO FIND OUT WHERE THIS DATA COMES FROM AND GET IT WORKING
119
- # it "should have a partial address that it's full data doesn't live in WORKS or REGCENTER" do
120
- # g = Activity.new(GSA.new(JSON.parse('{"language":"en", "title":"Zumba Punch Card (Adult) - Oct. (5) | Vista, CA, 92084 |", "url":"http://www.active.com/community-services-class/vista-ca/zumba-punch-card-adult-oct-5-2010", "escapedUrl":"http://www.active.com/community-services-class/vista-ca/zumba-punch-card-adult-oct-5-2010", "meta":{"city":"Vista", "assetId":"3ae995d9-5c16-4176-b44e-fa0577644ca4", "substitutionUrl":"vistarecreation/registrationmain.sdi?source=showAsset.sdi&activity_id=4900", "trackbackurl":"http://www.active.com/community-services-class/vista-ca/zumba-punch-card-adult-oct-5-2010", "onlineRegistrationAvailable":"false", "zip":"92084", "sortDate":"2000-10-02", "category":"Activities", "latitude":"33.2000368", "dma":"San Diego", "lastModifiedDate":"2010-09-29", "tags":"2348.321", "lastModifiedDateTime":"2010-09-29 16:46:43.33", "country":"United States of America", "startDate":"2010-10-02", "assetName":"Zumba Punch Card (Adult) - Oct. (5)", "summary":"People of all ages are falling in love with Zumba, one of the fastest growing dance-based fitness crazes in the country. With Zumbas easy-to-follow dance moves you receive body beautifying benefits while enjoying Latin rhythms including Salsa, Meringue, Cumbia, Reggaeton, even belly dance and hip-hop. Zumba is ", "description":"", "seourl":"http://www.active.com/community-services-class/vista-ca/zumba-punch-card-adult-oct-5-2010", "channel":"Community Services", "splitMediaType":"Class", "mediaType":"Class", "longitude":"-117.2425355", "UpdateDateTime":"8/20/2008 9:03:50 AM", "assetTypeId":"FB27C928-54DB-4ECD-B42F-482FC3C8681F", "state":"California", "keywords":""}, "summary":""}')))
121
- # g.address[:name].should eql("City of Vista Recreation")
122
- # g.address[:address].should eql("200 Civic Center Dr.")
123
- # g.address[:city].should eql("Vista")
124
- # g.address[:state].should eql("California")
125
- # g.address[:zip].should eql("92084")
126
- # g.address[:country].should eql("United States of America")
127
- # g.address[:lat].should eql("33.2000368")
128
- # g.address[:lng].should eql("-117.2425355")
129
- # end
130
-
131
- # USER
132
- it "should have a nil user email" do
133
- g = Activity.new(GSA.new(JSON.parse('{"escapedUrl":"http://www.active.com/cycling/san-francisco-ca/seismic-challenge-30-2010","language":"en","title":"Seismic Challenge 3.0 | San Francisco, California 94101 \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/cycling/san-francisco-ca/seismic-challenge-30-2010","summary":"","meta":{"startDate":"2010-10-02","eventDate":"2010-10-02T00:00:00-07:00","tag":"event:10","state":"California","eventLongitude":"-122.42","endDate":"2010-10-03","lastModifiedDateTime":"2010-10-04 03:08:51.65","splitMediaType":"Event","locationName":"San Francisco Bay","endTime":"0:00:00","mediaType":"Event","city":"San Francisco","google-site-verification":"","estParticipants":"2000","startTime":"0:00:00","assetId":["35A99FCB-E238-4D78-9205-96179F827CB0","35a99fcb-e238-4d78-9205-96179f827cb0"],"eventId":"1883181","participationCriteria":"All","description":"","longitude":"-122.42","onlineDonationAvailable":"0","substitutionUrl":"1883181","assetName":["Seismic Challenge 3.0","Seismic Challenge 3.0"],"eventURL":"http://greaterthanone.org/events/seismic-challenge/","zip":"94101","contactPhone":"415-487-3053","sortDate":"2000-10-02","eventState":"California","eventLatitude":"37.78","keywords":"Event","onlineMembershipAvailable":"0","dma":"San Francisco - Oakland - San Jose","trackbackurl":"http://www.active.com/cycling/san-francisco-ca/seismic-challenge-30-2010","seourl":"http://www.active.com/cycling/san-francisco-ca/seismic-challenge-30-2010","country":"United States","onlineRegistrationAvailable":"false","category":"Activities","market":"San Francisco - Oakland - San Jose","assetTypeId":"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65","lastModifiedDate":"2010-10-04","eventZip":"94101","UpdateDateTime":"9/22/2010 11:46:24 AM","latitude":"37.78","channel":"Cycling"}}')))
134
- g.user.email.should be_nil
135
- end
136
- it "should have a valid user email" do
137
- g = Activity.new(GSA.new(JSON.parse('{"escapedUrl":"http://www.active.com/cycling/san-francisco-ca/seismic-challenge-30-2010","language":"en","title":"Seismic Challenge 3.0 | San Francisco, California 94101 \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/cycling/san-francisco-ca/seismic-challenge-30-2010","summary":"","meta":{"startDate":"2010-10-02","eventDate":"2010-10-02T00:00:00-07:00","tag":"event:10","state":"California","eventLongitude":"-122.42","endDate":"2010-10-03","lastModifiedDateTime":"2010-10-04 03:08:51.65","splitMediaType":"Event","locationName":"San Francisco Bay","endTime":"0:00:00","mediaType":"Event","city":"San Francisco","google-site-verification":"","estParticipants":"2000","startTime":"0:00:00","assetId":["35A99FCB-E238-4D78-9205-96179F827CB0","35a99fcb-e238-4d78-9205-96179f827cb0"],"eventId":"1883181","participationCriteria":"All","description":"","longitude":"-122.42","onlineDonationAvailable":"0","substitutionUrl":"1883181","assetName":["Seismic Challenge 3.0","Seismic Challenge 3.0"],"eventURL":"http://greaterthanone.org/events/seismic-challenge/","zip":"94101","contactPhone":"415-487-3053","sortDate":"2000-10-02","eventState":"California","eventLatitude":"37.78","keywords":"Event","contactEmail":"eventinfo@sfaf.org","onlineMembershipAvailable":"0","dma":"San Francisco - Oakland - San Jose","trackbackurl":"http://www.active.com/cycling/san-francisco-ca/seismic-challenge-30-2010","seourl":"http://www.active.com/cycling/san-francisco-ca/seismic-challenge-30-2010","country":"United States","onlineRegistrationAvailable":"false","category":"Activities","market":"San Francisco - Oakland - San Jose","assetTypeId":"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65","lastModifiedDate":"2010-10-04","eventZip":"94101","UpdateDateTime":"9/22/2010 11:46:24 AM","latitude":"37.78","channel":"Cycling"}}')))
138
- g.user.email.should eql("eventinfo@sfaf.org")
139
- end
140
-
141
- # title
142
- it "should have a gsa title" do
143
- @a.title.should eql("2011 Rohto Ironman 70.3 California")
144
- end
145
- it "should have a primary title" do
146
- @a.primary_loaded?.should eql(false)
147
- @a._title.should eql("2011 Rohto Ironman 70.3 California")
148
- @a.primary_loaded?.should eql(true)
149
- end
150
- it "should have a gsa url" do
151
- @a.url.should eql("http://www.active.com/triathlon/oceanside-ca/rohto-ironman-703-california-2011")
152
- end
153
- it "should have an ats url" do
154
- @a.ats_loaded?.should eql(false)
155
- @a._url.should eql("http://www.active.com/triathlon/oceanside-ca/rohto-ironman-703-california-2011")
156
- @a.ats_loaded?.should eql(true)
157
- end
158
- it "should have a gsa categories" do
159
- @a.categories.should eql(["Triathlon"])
160
- end
161
- it "should have an primary source categories" do
162
- @a.primary_loaded?.should eql(false)
163
- @a._categories.should eql(["Triathlon"])
164
- @a.primary_loaded?.should eql(true)
165
- end
166
- it "should have a gsa address" do
167
- @a.primary_loaded?.should eql(false)
168
- @a.address["address"].should eql("1540 Harbor Drive North")
169
- @a.primary_loaded?.should eql(false)
170
- end
171
- it "should have an primary source address" do
172
- @a.primary_loaded?.should eql(false)
173
- @a._address["address"].should eql("1540 Harbor Drive North")
174
- @a.primary_loaded?.should eql(true)
175
- end
176
- it "should have a gsa start_date" do
177
- @a.primary_loaded?.should eql(false)
178
- @a.start_date.should be_an_instance_of(DateTime)
179
- @a.primary_loaded?.should eql(false)
180
- end
181
- it "should have an primary source start_date" do
182
- @a.primary_loaded?.should eql(false)
183
- @a._start_date.should be_an_instance_of(DateTime)
184
- @a.primary_loaded?.should eql(true)
185
- end
186
- it "should have a gsa start_time" do
187
- @a.primary_loaded?.should eql(false)
188
- @a.start_time.should be_an_instance_of(DateTime)
189
- @a.primary_loaded?.should eql(false)
190
- end
191
- it "should have an primary source start_time" do
192
- @a.primary_loaded?.should eql(false)
193
- @a._start_time.should be_an_instance_of(DateTime)
194
- @a.primary_loaded?.should eql(true)
195
- end
196
-
197
- it "should have a gsa end_date" do
198
- @a.primary_loaded?.should eql(false)
199
- @a.end_date.should be_an_instance_of(DateTime)
200
- @a.primary_loaded?.should eql(false)
201
- end
202
- it "should have an primary source end_date" do
203
- @a.primary_loaded?.should eql(false)
204
- @a._end_date.should be_an_instance_of(DateTime)
205
- @a.primary_loaded?.should eql(true)
206
- end
207
-
208
- it "should have a gsa end_time" do
209
- @a.primary_loaded?.should eql(false)
210
- @a.end_time.should be_an_instance_of(DateTime)
211
- @a.primary_loaded?.should eql(false)
212
- end
213
- it "should have an primary source end_time" do
214
- @a.primary_loaded?.should eql(false)
215
- @a._end_time.should be_an_instance_of(DateTime)
216
- @a.primary_loaded?.should eql(true)
217
- end
218
-
219
- it "should have a gsa category" do
220
- @a.primary_loaded?.should eql(false)
221
- @a.category.should eql("Triathlon")
222
- @a.primary_loaded?.should eql(false)
223
- end
224
- it "should have an ats category" do
225
- ats = Activity.new(ATS.find_by_id("77acabbd-ba83-4c78-925d-ce49deddf20c"))
226
- ats.gsa_loaded?.should eql(false)
227
- ats.category.should eql("Triathlon")
228
- ats.primary_loaded?.should eql(false)
229
- end
230
- it "should have an primary source category" do
231
- @a.primary_loaded?.should eql(false)
232
- @a._category.should eql("Triathlon")
233
- @a.primary_loaded?.should eql(true)
234
- end
235
-
236
- it "should have a gsa desc" do
237
- @a.primary_loaded?.should eql(false)
238
- @a.desc.should eql("")
239
- @a.primary_loaded?.should eql(false)
240
- end
241
- it "should have an primary source desc" do
242
- @a.primary_loaded?.should eql(false)
243
- @a._desc.should_not eql("")
244
- @a.primary_loaded?.should eql(true)
245
- end
246
-
247
- it "should have a gsa asset_id" do
248
- @a.primary_loaded?.should eql(false)
249
- @a.asset_id.should eql("77ACABBD-BA83-4C78-925D-CE49DEDDF20C")
250
- @a.primary_loaded?.should eql(false)
251
- end
252
- it "should have an primary source asset_id" do
253
- @a.primary_loaded?.should eql(false)
254
- @a._asset_id.should eql("77acabbd-ba83-4c78-925d-ce49deddf20c")
255
- @a.primary_loaded?.should eql(true)
256
- end
257
-
258
- it "should have a gsa asset_type_id" do
259
- @a.primary_loaded?.should eql(false)
260
- @a.asset_type_id.should eql("3BF82BBE-CF88-4E8C-A56F-78F5CE87E4C6")
261
- @a.primary_loaded?.should eql(false)
262
- end
263
- it "should have an primary source asset_type_id" do
264
- @a.primary_loaded?.should eql(false)
265
- @a._asset_type_id.should eql("EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65")
266
- @a.primary_loaded?.should eql(true)
267
- end
268
- it "should find by asset_id" do
269
- @a = Activity.find({:asset_id=>"3292945B-08DE-41E5-BF6E-95ED5E59E800"})
270
- @a.primary_loaded?.should eql(false)
271
- @a._asset_type_id.should eql("EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65")
272
- @a.primary_loaded?.should eql(true)
273
- end
274
- it "should find by substitutionUrl and asset_type_id" do
275
- @a = Activity.find({:substitutionUrl=>"1877935", :asset_type_id=>"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65"})
276
- @a.primary_loaded?.should eql(true)
277
- @a.gsa_loaded?.should eql(false)
278
- @a.ats_loaded?.should eql(false)
279
- @a._url.should eql("http://www.active.com/not-specified-recware-activities/antioch-ca/young-rembrandts-drawing-612-yrs-2010")
280
- @a.ats_loaded?.should eql(true)
281
- end
282
-
283
- it "should load url from ats and _title from primary" do
284
- @ats_activity.url.should eql("http://www.active.com/running/san-francisco-ca/urban-hunt-san-francisco-2010")
285
- @ats_activity.primary_loaded?.should eql(false)
286
- @ats_activity._title.should eql("URBAN HUNT: San Francisco")
287
- @ats_activity.primary_loaded?.should eql(true)
288
- end
289
-
290
- it "should have an ats title" do
291
- @ats_activity.primary_loaded?.should eql(false)
292
- @ats_activity.title.should eql( "URBAN HUNT: San Francisco")
293
- @ats_activity.primary_loaded?.should eql(false)
294
- end
295
- it "should have a primary title" do
296
- @ats_activity.primary_loaded?.should eql(false)
297
- @ats_activity._title.should eql( "URBAN HUNT: San Francisco")
298
- @ats_activity.primary_loaded?.should eql(true)
299
- end
300
-
301
- it "should have an ats categories" do
302
- @ats_activity.primary_loaded?.should eql(false)
303
- @ats_activity.categories.should eql(["Adventure Racing", "Running"])
304
- @ats_activity.primary_loaded?.should eql(false)
305
- end
306
- it "should have a primary categories" do
307
- @ats_activity.primary_loaded?.should eql(false)
308
- @ats_activity._categories.should eql( ["Running", "Adventure Racing"])
309
- @ats_activity.primary_loaded?.should eql(true)
310
- end
311
-
312
- it "should have an ats address" do
313
- @ats_activity.primary_loaded?.should eql(false)
314
- @ats_activity.address["city"].should eql("San Francisco")
315
- @ats_activity.primary_loaded?.should eql(false)
316
- end
317
- it "should have a primary address" do
318
- @ats_activity.primary_loaded?.should eql(false)
319
- # puts @ats_activity._address.inspect
320
- # puts @ats_activity.primary_source.data.inspect
321
- @ats_activity._address["address"].should eql( "1 Embarcadero Center, San Francisco, CA 94111")
322
- @ats_activity.primary_loaded?.should eql(true)
323
- end
324
-
325
-
326
- it "should have a ats start_date" do
327
- @ats_activity.primary_loaded?.should eql(false)
328
- @ats_activity.start_date.should be_an_instance_of(DateTime)
329
- @ats_activity.primary_loaded?.should eql(false)
330
- end
331
- it "should have an primary source start_date" do
332
- @ats_activity.primary_loaded?.should eql(false)
333
- @ats_activity._start_date.should be_an_instance_of(DateTime)
334
- @ats_activity.primary_loaded?.should eql(true)
335
- end
336
- it "should have a ats start_time" do
337
- @ats_activity.primary_loaded?.should eql(false)
338
- @ats_activity.start_time.should be_an_instance_of(DateTime)
339
- @ats_activity.primary_loaded?.should eql(false)
340
- end
341
- it "should have an primary source start_time" do
342
- @ats_activity.primary_loaded?.should eql(false)
343
- @ats_activity._start_time.should be_an_instance_of(DateTime)
344
- @ats_activity.primary_loaded?.should eql(true)
345
- end
346
-
347
- it "should have a ats end_date" do
348
- @ats_activity.primary_loaded?.should eql(false)
349
- @ats_activity.end_date.should be_an_instance_of(DateTime)
350
- @ats_activity.primary_loaded?.should eql(false)
351
- end
352
- it "should have an primary source end_date" do
353
- @ats_activity.primary_loaded?.should eql(false)
354
- @ats_activity._end_date.should be_an_instance_of(DateTime)
355
- @ats_activity.primary_loaded?.should eql(true)
356
- end
357
-
358
- it "should have a ats end_time" do
359
- @ats_activity.primary_loaded?.should eql(false)
360
- @ats_activity.end_time.should be_an_instance_of(DateTime)
361
- @ats_activity.primary_loaded?.should eql(false)
362
- end
363
- it "should have an primary source end_time" do
364
- @ats_activity.primary_loaded?.should eql(false)
365
- @ats_activity._end_time.should be_an_instance_of(DateTime)
366
- @ats_activity.primary_loaded?.should eql(true)
367
- end
368
-
369
- it "should have a ats category" do
370
- @ats_activity.primary_loaded?.should eql(false)
371
- @ats_activity.category.should eql("Adventure Racing")
372
- @ats_activity.primary_loaded?.should eql(false)
373
- end
374
-
375
- it "should have a primay category" do
376
- @ats_activity.primary_loaded?.should eql(false)
377
- @ats_activity._category.should eql("Running")
378
- @ats_activity.primary_loaded?.should eql(true)
379
- end
380
-
381
- # SHOULD DESC be null or empty
382
- it "should have a ats desc" do
383
- @ats_activity.primary_loaded?.should eql(false)
384
- @ats_activity.desc.should eql("")
385
- @ats_activity.primary_loaded?.should eql(false)
386
- end
387
- it "should have an primary source desc" do
388
- @ats_activity.primary_loaded?.should eql(false)
389
- @ats_activity._desc.should_not eql("")
390
- # puts @ats_activity._desc
391
- @ats_activity.primary_loaded?.should eql(true)
392
- end
393
-
394
- it "should have a ats asset_id" do
395
- @ats_activity.primary_loaded?.should eql(false)
396
- @ats_activity.asset_id.should eql("EEBC04D9-EA80-46C6-B9DD-6EBF49F8678F")
397
- @ats_activity.primary_loaded?.should eql(false)
398
- end
399
- it "should have an primary source asset_id" do
400
- @ats_activity.primary_loaded?.should eql(false)
401
- @ats_activity._asset_id.should eql("eebc04d9-ea80-46c6-b9dd-6ebf49f8678f")
402
- @ats_activity.primary_loaded?.should eql(true)
403
- end
404
-
405
- it "should have a ats asset_type_id" do
406
- @ats_activity.primary_loaded?.should eql(false)
407
- @ats_activity.asset_type_id.should eql("EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65")
408
- @ats_activity.primary_loaded?.should eql(false)
409
- end
410
-
411
- end
412
- describe "regristration_available?" do
413
- it "should have a valid response for regristration_status" do
414
- results = Search.search( { :num_results => 50, :keywords => ["running"] } )
415
- results.should have(50).results
416
- results.results.each do |a|
417
- a.regristration_status.should match(/reg-open|reg-unavailable|reg-not-open|reg-closed/)
418
- end
419
- end
420
- end
421
- end