class GtmOnRails::DataLayer::Object

Attributes

data[RW]

Public Class Methods

new(**args) click to toggle source
# File lib/gtm_on_rails/models/data_layer/object.rb, line 6
def initialize(**args)
  @data = args.with_indifferent_access
end

Public Instance Methods

add(**hash) click to toggle source
# File lib/gtm_on_rails/models/data_layer/object.rb, line 10
def add(**hash)
  @data.merge!(hash)
end
as_json(options = nil) click to toggle source
# File lib/gtm_on_rails/models/data_layer/object.rb, line 14
def as_json(options = nil)
  @data.as_json(options)
end
method_missing(method, *args, &block) click to toggle source
Calls superclass method
# File lib/gtm_on_rails/models/data_layer/object.rb, line 28
def method_missing(method, *args, &block)
  if method.to_s.end_with?('=')
    key     = method.to_s.chop.to_sym
    _method = :[]=
    _args   = [key] + args
  else
    key     = method
    _method = :[]
    _args   = [key]
  end

  if @data.has_key?(key)
    @data.send(_method, *_args)
  else
    super
  end
end
to_js(options = nil) click to toggle source
# File lib/gtm_on_rails/models/data_layer/object.rb, line 24
def to_js(options = nil)
  "dataLayer.push(#{self.to_json(options)});".html_safe
end
to_json(options = nil) click to toggle source
# File lib/gtm_on_rails/models/data_layer/object.rb, line 18
def to_json(options = nil)
  hash = as_json(options)
  
  hash.to_json
end