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]
authorName[R]
author_name[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

assetChannels()
Alias for: channels
assetComponents()
Alias for: components
assetDescriptions()
Alias for: descriptions
assetImages()
Alias for: images
assetLegacyData()
Alias for: legacy_data
assetPrices()
Alias for: prices
assetSeoUrls()
Alias for: seo_urls
assetStatus()
Alias for: status
assetTags()
Alias for: tags
assetTopics()
Alias for: topics
asset_channels()
Alias for: channels
asset_components()
Alias for: components
asset_descriptions()
Alias for: descriptions
asset_images()
Alias for: images
asset_legacy_data()
Alias for: legacy_data
asset_prices()
Alias for: prices
asset_seo_urls()
Alias for: seo_urls
asset_status()
Alias for: status
asset_tags()
Alias for: tags
asset_topics()
Alias for: topics
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
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
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
reg_status()
Alias for: registration_status
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
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
tags() click to toggle source
# File lib/actv/asset.rb, line 144
def tags
  @asset_tags ||= Array(@attrs[:assetTags]).map do |tag|
    ACTV::AssetTag.new(tag)
  end
end
Also aliased as: asset_tags, assetTags
topic()
Alias for: first_topic
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
urlize(str) click to toggle source
# File lib/actv/asset.rb, line 406
def urlize str
  if str
    str.downcase.gsub ' ', '-'
  else
    ""
  end
end