class Itly::Plugin::Iteratively::TrackModel

Data model for HTTP client buffering

Attributes

date_sent[R]
event_id[R]
event_name[R]
event_schema_version[R]
properties[R]
type[R]
valid[R]
validation[R]

Public Class Methods

new(type:, event:, properties:, validation: nil, omit_values: false) click to toggle source
# File lib/itly/plugin/iteratively/track_model.rb, line 17
def initialize(type:, event:, properties:, validation: nil, omit_values: false)
  @omit_values = omit_values
  @type = type
  @date_sent = Time.now.utc.iso8601
  @event_id = event&.id
  @event_schema_version = event&.version
  @event_name = event&.name
  @properties = event&.properties || properties
  @valid = validation ? validation.valid : true
  @validation = { details: validation ? validation.message : '' }

  @properties = @properties.transform_values { |_| '' } if @omit_values
end

Public Instance Methods

to_json(*_) click to toggle source
# File lib/itly/plugin/iteratively/track_model.rb, line 31
def to_json(*_)
  {
    type: @type,
    dateSent: @date_sent,
    eventId: @event_id,
    eventSchemaVersion: @event_schema_version,
    eventName: @event_name,
    properties: @properties,
    valid: @valid,
    validation: @validation
  }.to_json
end
to_s() click to toggle source
# File lib/itly/plugin/iteratively/track_model.rb, line 44
def to_s
  "#<#{self.class.name}: type: #{@type} date_sent: #{@date_sent} event_id: #{@event_id} "\
    "event_schema_version: #{@event_schema_version} event_name: #{@event_name} "\
    "properties: #{@properties} valid: #{@valid} validation: #{@validation}>"
end