Class: GtmOnRails::DataLayer::Ecommerce::Impression

Inherits:
Object
  • Object
show all
Defined in:
lib/gtm_on_rails/models/data_layer/ecommerce/impression.rb

Instance Attribute Summary

Attributes inherited from Object

#data

Instance Method Summary collapse

Methods inherited from Object

#add, #as_json, #method_missing, #to_json

Constructor Details

#initialize(**args) ⇒ Impression

Returns a new instance of Impression.

Raises:

  • (ArgumentError)


4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class GtmOnRails::DataLayer::Object

Instance Method Details

#to_jsObject



25
26
27
# File 'lib/gtm_on_rails/models/data_layer/ecommerce/impression.rb', line 25

def to_js
  to_json
end