class PostHog::FieldParser
def parse_common_fields(fields)
- "message_id"
- "distinct_id"
- "timestamp"
Common fields are:
def parse_common_fields(fields) timestamp = fields[:timestamp] || Time.new distinct_id = fields[:distinct_id] message_id = fields[:message_id].to_s if fields[:message_id] send_feature_flags = fields[:send_feature_flags] check_timestamp! timestamp check_presence! distinct_id, 'distinct_id' parsed = { timestamp: datetime_in_iso8601(timestamp), library: 'posthog-ruby', library_version: PostHog::VERSION.to_s, messageId: message_id, distinct_id: distinct_id, properties: { '$lib' => 'posthog-ruby', '$lib_version' => PostHog::VERSION.to_s } } if send_feature_flags && fields[:feature_variants] feature_variants = fields[:feature_variants] active_feature_variants = {} feature_variants.each do |key, value| parsed[:properties]["$feature/#{key}"] = value active_feature_variants[key] = value if value != false end parsed[:properties]['$active_feature_flags'] = active_feature_variants.keys end parsed end