class GtmOnRails::DataLayer::Ecommerce::Impression

Public Class Methods

new(**args) click to toggle source
# File lib/gtm_on_rails/models/data_layer/ecommerce/impression.rb, line 4
def initialize(**args)
  raise ArgumentError.new("required either 'id' or 'name', or both.") if args[:id].blank? && args[:name].blank?

  @data = {}

  @data[:id]       = args[:id]       if args[:id].present?
  @data[:name]     = args[:name]     if args[:name].present?
  @data[:list]     = args[:list]     if args[:list].present?
  @data[:brand]    = args[:brand]    if args[:brand].present?
  @data[:variant]  = args[:variant]  if args[:variant].present?
  @data[:position] = args[:position] if args[:position].present?
  @data[:price]    = args[:price]    if args[:price].present?
  if args[:category].present?
    if args[:category].is_a?(Array)
      @data[:category] = args[:category].join('/')
    else
      @data[:category] = args[:category]
    end
  end
end

Public Instance Methods

to_js() click to toggle source
# File lib/gtm_on_rails/models/data_layer/ecommerce/impression.rb, line 25
def to_js
  to_json
end