class ACTV::Asset
Attributes
activityEndDate[R]
activityEndTime[R]
activityStartDate[R]
activityStartTime[R]
activity_end_date[R]
activity_start_date[R]
assetDsc[R]
assetGuid[R]
assetName[R]
contactEmailAdr[R]
contactName[R]
contactPhone[R]
contactTxt[R]
contact_email[R]
contact_name[R]
contact_phone[R]
contact_txt[R]
createdDate[R]
created_at[R]
currencyCd[R]
currency_code[R]
end_date[R]
end_time[R]
homePageUrlAdr[R]
home_page_url[R]
id[R]
isRecurring[R]
is_article[R]
is_event[R]
is_recurring?[R]
maximum_age[R]
minimum_age[R]
modifiedDate[R]
publishDate[R]
published_at[R]
regReqGenderCd[R]
regReqMaxAge[R]
regReqMinAge[R]
required_gender[R]
showContact[R]
show_contact?[R]
start_date[R]
start_time[R]
title[R]
updated_at[R]
Public Class Methods
from_response(response={})
click to toggle source
# File lib/actv/asset.rb, line 64 def self.from_response response={} AssetFactory.new(response[:body]).asset end
inherited(base)
click to toggle source
# File lib/actv/asset.rb, line 56 def self.inherited base @types << base end
new(options={})
click to toggle source
Calls superclass method
ACTV::Identity::new
# File lib/actv/asset.rb, line 51 def initialize options={} super options[:logoUrlAdr]= replace_http_to_https options[:logoUrlAdr] end
types()
click to toggle source
# File lib/actv/asset.rb, line 60 def self.types @types + Array(self) end
valid?(response)
click to toggle source
# File lib/actv/asset.rb, line 68 def self.valid? response AssetValidator.new(response).valid? end
Public Instance Methods
attribute_paths()
click to toggle source
# File lib/actv/asset.rb, line 253 def attribute_paths attributes.map do |attribute| [sub_topic_path, urlize(attribute)].join "/" end end
attributes()
click to toggle source
# File lib/actv/asset.rb, line 245 def attributes @attributes ||= assetAttributes.sort_by do |attribute| attribute[:attribute][:attributeType] end.map do |attribute| attribute[:attribute][:attributeValue] end end
category_is?(name)
click to toggle source
# File lib/actv/asset.rb, line 355 def category_is? name @attrs[:assetCategories].any? do |cat| cat[:category][:categoryName].downcase == name.downcase end end
channels()
click to toggle source
# File lib/actv/asset.rb, line 127 def channels @asset_channels ||= Array(@attrs[:assetChannels]).map do |channel| ACTV::AssetChannel.new(channel) end end
Also aliased as: asset_channels, assetChannels
components()
click to toggle source
# File lib/actv/asset.rb, line 152 def components @asset_components ||= Array(@attrs[:assetComponents]).map do |component| ACTV::AssetComponent.new(component) end end
Also aliased as: asset_components, assetComponents
description()
click to toggle source
# File lib/actv/asset.rb, line 193 def description @description ||= description_by_type 'Standard' end
description_by_type(type)
click to toggle source
# File lib/actv/asset.rb, line 202 def description_by_type(type) dsc = self.descriptions.find { |dsc| dsc.type.name.downcase == type.downcase } (dsc.description.downcase == 'n/a' ? '' : dsc.description) if dsc end
descriptions()
click to toggle source
# File lib/actv/asset.rb, line 102 def descriptions @descriptions ||= Array(@attrs[:assetDescriptions]).map do |description| description[:description] = convert_all_resource_to_https(description[:description]) ACTV::AssetDescription.new(description) end end
Also aliased as: asset_descriptions, assetDescriptions
endurance_id()
click to toggle source
# File lib/actv/asset.rb, line 72 def endurance_id if self.awendurance? query_values = Addressable::URI.parse(registrationUrlAdr.to_s).query_values query_values ||= {} query_values.fetch 'e', nil end end
evergreen?()
click to toggle source
# File lib/actv/asset.rb, line 232 def evergreen? self.evergreenAssetFlag.downcase == 'true' rescue false end
first_topic()
click to toggle source
# File lib/actv/asset.rb, line 277 def first_topic get_first_topic_taxonomy[0] end
Also aliased as: topic
first_topic_name()
click to toggle source
# File lib/actv/asset.rb, line 286 def first_topic_name topics.first.topic.name unless topics.empty? end
first_topic_path()
click to toggle source
# File lib/actv/asset.rb, line 282 def first_topic_path urlize first_topic end
has_location?()
click to toggle source
# File lib/actv/asset.rb, line 228 def has_location? self.place && place.has_lat_long? end
has_volume_based_price?()
click to toggle source
# File lib/actv/asset.rb, line 168 def has_volume_based_price? prices.any? { |price| price.volume_pricing? } end
image()
click to toggle source
# File lib/actv/asset.rb, line 345 def image image_without_placeholder end
image_by_name(name)
click to toggle source
# File lib/actv/asset.rb, line 207 def image_by_name(name) self.images.find { |img| img.name.downcase == name.downcase } end
image_path()
click to toggle source
# File lib/actv/asset.rb, line 330 def image_path default_image = 'https://www.active.com/images/events/hotrace.gif' image = image_without_placeholder.imageUrlAdr rescue "" if image.empty? and (logoUrlAdr && logoUrlAdr != default_image && !(logoUrlAdr =~ URI::regexp).nil?) image = logoUrlAdr end image end
image_with_placeholder()
click to toggle source
# File lib/actv/asset.rb, line 322 def image_with_placeholder if image_path.empty? "/images/logo-active-icon-gray.gif" else image_path end end
images()
click to toggle source
# File lib/actv/asset.rb, line 135 def images @images ||= Array(@attrs[:assetImages]).map do |img| img[:imageUrlAdr] = replace_http_to_https(img[:imageUrlAdr]) unless 'MediaGalleryButton' == img[:imageName] ACTV::AssetImage.new(img) end end
Also aliased as: asset_images, assetImages
is_article?()
click to toggle source
# File lib/actv/asset.rb, line 220 def is_article? false end
is_event?()
click to toggle source
# File lib/actv/asset.rb, line 216 def is_event? false end
is_video?()
click to toggle source
# File lib/actv/asset.rb, line 224 def is_video? false end
kids?()
click to toggle source
# File lib/actv/asset.rb, line 236 def kids? kids_friendly_source_system? && kids_interest? end
legacy_data()
click to toggle source
# File lib/actv/asset.rb, line 121 def legacy_data @legacy_data ||= ACTV::AssetLegacyData.new(@attrs[:assetLegacyData]) unless @attrs[:assetLegacyData].nil? end
Also aliased as: asset_legacy_data, assetLegacyData
location_path()
click to toggle source
# File lib/actv/asset.rb, line 273 def location_path @location ||= "#{place.cityName} #{place.stateProvinceCode}".downcase.gsub ' ','-' end
media_url()
click to toggle source
# File lib/actv/asset.rb, line 341 def media_url image_without_placeholder.imageUrlAdr rescue "" end
meta_interest_paths()
click to toggle source
# File lib/actv/asset.rb, line 267 def meta_interest_paths meta_interests.map do |meta_interest| [sub_topic_path, urlize(meta_interest)].join "/" end end
meta_interests()
click to toggle source
# File lib/actv/asset.rb, line 259 def meta_interests @meta_interests ||= attrs[:assetMetaInterests].sort_by do |interest| interest[:sequence] end.map do |interest| interest[:metaInterest][:metaInterestName] end end
org_timezone()
click to toggle source
# File lib/actv/asset.rb, line 94 def org_timezone @org_timezone ||= @attrs[:localTimeZoneId] unless @attrs[:localTimeZoneId].nil? end
organization()
click to toggle source
# File lib/actv/asset.rb, line 361 def organization @attrs[:organization] || {} end
place()
click to toggle source
# File lib/actv/asset.rb, line 86 def place @place ||= ACTV::Place.new(@attrs[:place]) unless @attrs[:place].nil? end
place_timezone()
click to toggle source
# File lib/actv/asset.rb, line 90 def place_timezone @place_timezone ||= place[:timezone] unless place[:timezone].nil? end
prices()
click to toggle source
# File lib/actv/asset.rb, line 160 def prices @asset_prices ||= Array(@attrs[:assetPrices]).map do |price| ACTV::AssetPrice.new(price) end end
Also aliased as: asset_prices, assetPrices
recurrences()
click to toggle source
# File lib/actv/asset.rb, line 80 def recurrences @recurrences ||= Array(@attrs[:activityRecurrences]).map do | recurrence | ACTV::Recurrence.new(recurrence) end end
references()
click to toggle source
# File lib/actv/asset.rb, line 349 def references @references ||= Array(@attrs[:assetReferences]).map do |reference| ACTV::AssetReference.new reference end end
registration_status()
click to toggle source
# File lib/actv/asset.rb, line 240 def registration_status @registration_status ||= nil end
Also aliased as: reg_status
seo_url(systemName = 'as3')
click to toggle source
# File lib/actv/asset.rb, line 197 def seo_url(systemName = 'as3') seo_url = self.seo_urls.find { |s| s.seoSystemName.downcase == systemName.downcase } seo_url.urlAdr unless seo_url.nil? end
seo_urls()
click to toggle source
# File lib/actv/asset.rb, line 180 def seo_urls @seo_urls ||= Array(@attrs[:assetSeoUrls]).map do |seo_url| seo_url[:urlAdr] = replace_http_to_https seo_url[:urlAdr] ACTV::AssetSeoUrl.new(seo_url) end end
Also aliased as: asset_seo_urls, assetSeoUrls
sponsored?()
click to toggle source
# File lib/actv/asset.rb, line 365 def sponsored? sponsoredContent.present? && sponsoredContent[:enabled].to_s == 'true' && sponsored_date_available? end
status()
click to toggle source
# File lib/actv/asset.rb, line 111 def status @status ||= ACTV::AssetStatus.new(@attrs[:assetStatus]) unless @attrs[:assetStatus].nil? end
Also aliased as: asset_status, assetStatus
sub_2_topic()
click to toggle source
# File lib/actv/asset.rb, line 298 def sub_2_topic get_first_topic_taxonomy[2] end
sub_2_topic_path()
click to toggle source
# File lib/actv/asset.rb, line 302 def sub_2_topic_path urlize "#{sub_topic_path}/#{sub_2_topic}" end
sub_3_topic()
click to toggle source
# File lib/actv/asset.rb, line 306 def sub_3_topic get_first_topic_taxonomy[3] end
sub_3_topic_path()
click to toggle source
# File lib/actv/asset.rb, line 310 def sub_3_topic_path urlize "#{sub_2_topic_path}/#{sub_3_topic}" end
sub_4_topic()
click to toggle source
# File lib/actv/asset.rb, line 314 def sub_4_topic get_first_topic_taxonomy[4] end
sub_4_topic_path()
click to toggle source
# File lib/actv/asset.rb, line 318 def sub_4_topic_path urlize "#{sub_3_topic_path}/#{sub_4_topic}" end
sub_topic()
click to toggle source
# File lib/actv/asset.rb, line 290 def sub_topic get_first_topic_taxonomy[1] end
sub_topic_path()
click to toggle source
# File lib/actv/asset.rb, line 294 def sub_topic_path urlize sub_topic end
summary()
click to toggle source
# File lib/actv/asset.rb, line 189 def summary @summary ||= description_by_type 'summary' end
tag_by_description(description)
click to toggle source
# File lib/actv/asset.rb, line 211 def tag_by_description(description) asset_tag = self.tags.find { |at| at.tag.description.downcase == description.downcase } asset_tag.tag.name if asset_tag end
topics()
click to toggle source
# File lib/actv/asset.rb, line 172 def topics @asset_topics ||= Array(@attrs[:assetTopics]).map do |topic| ACTV::AssetTopic.new(topic) end.sort end
Also aliased as: asset_topics, assetTopics
version()
click to toggle source
# File lib/actv/asset.rb, line 98 def version @asset_version ||= @attrs[:assetVersion] unless @attrs[:assetVersion].nil? end
visible?()
click to toggle source
# File lib/actv/asset.rb, line 117 def visible? asset_status.visible? end
Private Instance Methods
child_assets()
click to toggle source
# File lib/actv/asset.rb, line 375 def child_assets @child_assets ||= if components.any? ACTV.asset components.map(&:assetGuid) else [] end end
child_assets_filtered_by_category(category)
click to toggle source
# File lib/actv/asset.rb, line 371 def child_assets_filtered_by_category category child_assets.select { |child| child.category_is? category } end
convert_all_resource_to_https(content)
click to toggle source
# File lib/actv/asset.rb, line 429 def convert_all_resource_to_https content content.gsub!(/src=[\'|\"](http:\/\/)/, "src='http://" => "src='https://", 'src="http://' => 'src="https://') content end
get_first_topic_taxonomy()
click to toggle source
# File lib/actv/asset.rb, line 397 def get_first_topic_taxonomy @first_topic_taxonomy ||= assetTopics.first if @first_topic_taxonomy @first_topic_taxonomy.topic.topicTaxonomy.split '/' else [] end end
image_without_placeholder()
click to toggle source
# File lib/actv/asset.rb, line 383 def image_without_placeholder default_image = 'https://www.active.com/images/events/hotrace.gif' current_image = nil asset_images.each do |i| if i.imageUrlAdr.downcase != default_image current_image = i break end end current_image end
kids_interest?()
click to toggle source
# File lib/actv/asset.rb, line 414 def kids_interest? interests = meta_interests.to_a.map(&:downcase) ['kids', 'family'].any? { |tag| interests.include? tag } end
replace_http_to_https(content)
click to toggle source
# File lib/actv/asset.rb, line 434 def replace_http_to_https content content = content.to_s content.gsub! 'http://', 'https://' content end
sponsoredContent()
click to toggle source
# File lib/actv/asset.rb, line 419 def sponsoredContent @sponsoredContent ||= @attrs[:sponsoredContent] unless @attrs[:sponsoredContent].nil? end
sponsored_date_available?()
click to toggle source
# File lib/actv/asset.rb, line 423 def sponsored_date_available? start_time = Time.parse(sponsoredContent[:startDate]) end_time = Time.parse(sponsoredContent[:endDate]) Time.now.between?(start_time, end_time) end
urlize(str)
click to toggle source
# File lib/actv/asset.rb, line 406 def urlize str if str str.downcase.gsub ' ', '-' else "" end end