Class: Active::Services::GSA
Instance Attribute Summary collapse
-
#asset_type_id ⇒ Object
require ‘active_support/core_ext/hash/’.
Attributes inherited from IActivity
Instance Method Summary collapse
- #address ⇒ Object
- #asset_id ⇒ Object
-
#categories ⇒ Object
def event_url @data[“organizationWebsite”] rescue end.
- #category ⇒ Object
- #desc ⇒ Object
- #end_date ⇒ Object
- #end_time ⇒ Object
-
#initialize(json = {}) ⇒ GSA
constructor
EXAMPLE Data hash of a Feather Run | Ashland, Oregon 97520 | Thursday …”, “language”=>“en”, “url”=>“www.active.com/running/ashland-or/birds-of-a-feather-run-2010”, “escapedUrl”=>“www.active.com/running/ashland-or/birds-of-a-feather-run-2010”, “meta”=>{“city”=>“Ashland”, “assetId”=>[“4365AF63-B2AE-4A98-A403-5E30EB6D2D69”, “4365af63-b2ae-4a98-a403-5e30eb6d2d69”], “substitutionUrl”=>“1845585”, “trackbackurl”=>“www.active.com/running/ashland-or/birds-of-a-feather-run-2010”, “contactName”=>“Hal Koerner”, “eventDate”=>“2010-09-23T00:00:00-07:00”, “eventLongitude”=>“-122.5526”, “eventId”=>“1845585”, “zip”=>“97520”, “category”=>“Activities”, “latitude”=>“42.12607”, “google-site-verification”=>“”, “participationCriteria”=>“All”, “dma”=>“Medford - Klamath Falls”, “country”=>“United States”, “sortDate”=>“2000-09-23”, “tag”=>[“event:10”, “Running:10”], “lastModifiedDateTime”=>“2010-09-23 03:04:55.463”, “lastModifiedDate”=>“2010-09-23”, “startDate”=>“2010-09-23”, “contactPhone”=>“541-201-0014”, “eventState”=>“Oregon”, “splitMediaType”=>“Event”, “onlineDonationAvailable”=>“0”, “market”=>“Medford - Klamath Falls”, “assetName”=>[“Birds of a Feather Run”, “Birds of a Feather Run”], “seourl”=>“www.active.com/running/ashland-or/birds-of-a-feather-run-2010”, “assetTypeId”=>“EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65”, “channel”=>“Running”, “endTime”=>“0:00:00”, “mediaType”=>“Event”, “startTime”=>“0:00:00”, “description”=>“”, “longitude”=>“-122.5526”, “UpdateDateTime”=>“9/22/2010 11:46:24 AM”, “endDate”=>“2010-09-23”, “onlineMembershipAvailable”=>“0”, “onlineRegistrationAvailable”=>“false”, “eventZip”=>“97520”, “state”=>“Oregon”, “estParticipants”=>“2000”, “eventURL”=>“sorunners.org/”, “eventLatitude”=>“42.12607”, “keywords”=>“Event”, “summary”=>“… Similar Running Events. I Ran for Sudan - Maple Valley First Annual 10K/2Mile Kid’s Run/Walk Maple Valley, Washington Sat, Oct 02, 2010; … ”}.
- #last_modified ⇒ Object
- #online_registration ⇒ Object
- #primary_category ⇒ Object
- #source ⇒ Object
- #start_date ⇒ Object
- #start_time ⇒ Object
-
#substitutionUrl ⇒ Object
substitutionUrl could be formatted like this 1.
- #title=(value) ⇒ Object
- #url ⇒ Object
- #user ⇒ Object
Methods inherited from IActivity
Constructor Details
#initialize(json = {}) ⇒ GSA
EXAMPLE Data hash of a Feather Run | Ashland, Oregon 97520 | Thursday …”, “language”=>“en”, “url”=>“www.active.com/running/ashland-or/birds-of-a-feather-run-2010”, “escapedUrl”=>“www.active.com/running/ashland-or/birds-of-a-feather-run-2010”, “meta”=>{“city”=>“Ashland”, “assetId”=>[“4365AF63-B2AE-4A98-A403-5E30EB6D2D69”, “4365af63-b2ae-4a98-a403-5e30eb6d2d69”], “substitutionUrl”=>“1845585”, “trackbackurl”=>“www.active.com/running/ashland-or/birds-of-a-feather-run-2010”, “contactName”=>“Hal Koerner”, “eventDate”=>“2010-09-23T00:00:00-07:00”, “eventLongitude”=>“-122.5526”, “eventId”=>“1845585”, “zip”=>“97520”, “category”=>“Activities”, “latitude”=>“42.12607”, “google-site-verification”=>“”, “participationCriteria”=>“All”, “dma”=>“Medford - Klamath Falls”, “country”=>“United States”, “sortDate”=>“2000-09-23”, “tag”=>[“event:10”, “Running:10”], “lastModifiedDateTime”=>“2010-09-23 03:04:55.463”, “lastModifiedDate”=>“2010-09-23”, “startDate”=>“2010-09-23”, “contactPhone”=>“541-201-0014”, “eventState”=>“Oregon”, “splitMediaType”=>“Event”, “onlineDonationAvailable”=>“0”, “market”=>“Medford - Klamath Falls”, “assetName”=>[“Birds of a Feather Run”, “Birds of a Feather Run”], “seourl”=>“www.active.com/running/ashland-or/birds-of-a-feather-run-2010”, “assetTypeId”=>“EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65”, “channel”=>“Running”, “endTime”=>“0:00:00”, “mediaType”=>“Event”, “startTime”=>“0:00:00”, “description”=>“”, “longitude”=>“-122.5526”, “UpdateDateTime”=>“9/22/2010 11:46:24 AM”, “endDate”=>“2010-09-23”, “onlineMembershipAvailable”=>“0”, “onlineRegistrationAvailable”=>“false”, “eventZip”=>“97520”, “state”=>“Oregon”, “estParticipants”=>“2000”, “eventURL”=>“sorunners.org/”, “eventLatitude”=>“42.12607”, “keywords”=>“Event”, “summary”=>“… Similar Running Events. I Ran for Sudan - Maple Valley First Annual 10K/2Mile Kid’s Run/Walk Maple Valley, Washington Sat, Oct 02, 2010; … ”}
16 17 18 19 20 21 |
# File 'lib/services/gsa.rb', line 16 def initialize(json={}) # need to hold on to original data @data = HashWithIndifferentAccess.new(json) || HashWithIndifferentAccess.new # self.title = @data['meta']['assetName'] || nil self.title = @data['title'] || nil end |
Instance Attribute Details
#asset_type_id ⇒ Object
require ‘active_support/core_ext/hash/’
11 12 13 |
# File 'lib/services/gsa.rb', line 11 def asset_type_id @asset_type_id end |
Instance Method Details
#address ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/services/gsa.rb', line 92 def address @address = HashWithIndifferentAccess.new({ :name => @data["meta"]["location"], :city => @data["meta"]["city"], :lat => @data["meta"]["latitude"], :lng => @data["meta"]["longitude"], :country => @data["meta"]["country"] }) @address[:address] = @data["meta"]["eventAddress"] || @data["meta"]["location"] || nil @address[:state] = @data["meta"]["eventState"] || @data["meta"]["state"] @address[:zip] = @data["meta"]["eventZip"] || @data["meta"]["zip"] @address end |
#asset_id ⇒ Object
62 63 64 65 66 |
# File 'lib/services/gsa.rb', line 62 def asset_id return nil unless @data["meta"] and @data["meta"]["assetId"] value = @data["meta"]["assetId"] @asset_id = (value.class==Array) ? value[0] : value end |
#categories ⇒ Object
def event_url
@data["meta"]["organizationWebsite"] rescue
end
48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/services/gsa.rb', line 48 def categories arr = [] if @data["meta"]["channel"].class==String if @data["meta"]["channel"].index(",") arr << @data["meta"]["channel"].split(",") else arr << @data["meta"]["channel"] end else arr << @data["meta"]["channel"] end arr.flatten! end |
#category ⇒ Object
132 133 134 |
# File 'lib/services/gsa.rb', line 132 def category primary_category end |
#desc ⇒ Object
def contact_email
if @data["meta"].has_key?("contactEmail") && !@data["meta"]["contactEmail"].blank?
@data["meta"]["contactEmail"]
end
end
153 154 155 156 157 158 159 160 161 162 163 |
# File 'lib/services/gsa.rb', line 153 def desc if @data["meta"].has_key?("allText") && !@data["meta"]["allText"].blank? @data["meta"]["allText"] elsif @data["meta"].has_key?("summary") && !@data["meta"]["summary"].blank? @data["meta"]["summary"] elsif @data.has_key?("summary") && !@data["summary"].blank? @data["summary"] else "" end end |
#end_date ⇒ Object
120 121 122 123 124 125 126 |
# File 'lib/services/gsa.rb', line 120 def end_date if @data.has_key?("meta") and @data["meta"].has_key?("endDate") DateTime.parse @data["meta"]["endDate"] else nil end end |
#end_time ⇒ Object
128 129 130 |
# File 'lib/services/gsa.rb', line 128 def end_time end_date end |
#last_modified ⇒ Object
136 137 138 139 |
# File 'lib/services/gsa.rb', line 136 def last_modified @data["meta"]["lastModifiedDateTime"] if @data["meta"].has_key?("lastModifiedDateTime") end |
#online_registration ⇒ Object
141 142 143 144 145 |
# File 'lib/services/gsa.rb', line 141 def online_registration if @data["meta"].has_key?("onlineRegistrationAvailable") (@data["meta"]["onlineRegistrationAvailable"].downcase == "true") ? true : false end end |
#primary_category ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/services/gsa.rb', line 73 def primary_category # do we have it in the seo url? if @data["meta"].has_key?("seourl") seo_channel = @data["meta"]["seourl"].split("/") if seo_channel.length > 2 and categories categories.each do |cat| return cat if cat.downcase==seo_channel[3].downcase end else return "unknown" end end if categories.nil?# && categories.empty? return "unknown" else return categories.first end end |
#source ⇒ Object
23 24 25 |
# File 'lib/services/gsa.rb', line 23 def source :gsa end |
#start_date ⇒ Object
106 107 108 109 110 111 112 113 114 |
# File 'lib/services/gsa.rb', line 106 def start_date if @data.has_key?("meta") and @data["meta"].has_key?("eventDate") DateTime.parse( @data["meta"]["eventDate"] ) elsif @data.has_key?("meta") and @data["meta"].has_key?("startDate") DateTime.parse( @data["meta"]["startDate"] ) else nil end end |
#start_time ⇒ Object
116 117 118 |
# File 'lib/services/gsa.rb', line 116 def start_time start_date end |
#substitutionUrl ⇒ Object
substitutionUrl could be formatted like this
-
“meta”:Active::Services::GSA.“substitutionUrl”:“vistarecreation/registrationmain“substitutionUrl”:“vistarecreation/registrationmain.sdi?source=showAsset“substitutionUrl”:“vistarecreation/registrationmain.sdi?source=showAsset.sdi&activity_id=4900”
-
“meta”:“substitutionUrl”:“4900”
177 178 179 180 181 182 183 184 185 |
# File 'lib/services/gsa.rb', line 177 def substitutionUrl if @data["meta"].has_key?("substitutionUrl") if /activity_id=/ =~ @data["meta"]["substitutionUrl"] @data["meta"]["substitutionUrl"].split("activity_id=")[1] else @data["meta"]["substitutionUrl"] end end end |
#title=(value) ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/services/gsa.rb', line 27 def title=(value) @title = value if @title @title = @title.split("|")[0].strip if @title.include?("|") @title = @title.gsub(/<\/?[^>]*>/, "") @title = @title.gsub("...", "") end end |
#url ⇒ Object
36 37 38 39 40 41 42 |
# File 'lib/services/gsa.rb', line 36 def url if @data["meta"].has_key?("seourl") @data["meta"]["seourl"] else @data["url"] end end |
#user ⇒ Object
165 166 167 168 169 170 171 172 |
# File 'lib/services/gsa.rb', line 165 def user email = @data["meta"]["contactEmail"] || nil u = User.new u.email = email if Validators.email(email) u.first_name, u.last_name = parse_contact_name(@data["meta"]["contactName"]) u.phone = @data["meta"]["contactPhone"] || nil u end |