class ConnectClient::Event
Attributes
data[R]
Public Class Methods
new(data)
click to toggle source
# File lib/connect_client/event.rb, line 12 def initialize(data) event_data_defaults = { id: SecureRandom.uuid, timestamp: Time.now } @data = map_iso_dates event_data_defaults.merge(data) validate end
Public Instance Methods
to_json(options = nil)
click to toggle source
# File lib/connect_client/event.rb, line 24 def to_json(options = nil) @data.to_json end
to_s()
click to toggle source
# File lib/connect_client/event.rb, line 28 def to_s "Event Data: #{@data}" end
validate()
click to toggle source
# File lib/connect_client/event.rb, line 18 def validate invalid_properties = @data.keys.grep(@@RESERVED_PROPERTY_REGEX) raise EventDataValidationError.new(invalid_properties) if invalid_properties.any? end
Private Instance Methods
map_iso_dates(data)
click to toggle source
# File lib/connect_client/event.rb, line 34 def map_iso_dates(data) utc_converter = lambda { |value| value_to_convert = value map_utc = lambda { |value_item| utc_converter.call(value_item) } return value_to_convert.map(&map_utc) if value_to_convert.respond_to? :map value_to_convert = value_to_convert.to_time if value_to_convert.is_a?(DateTime) || value_to_convert.is_a?(Date) value_to_convert = value_to_convert.utc.iso8601 if value_to_convert.is_a? Time value_to_convert } mappedData = data.map do |key, value| if value.is_a? Hash [key, map_iso_dates(value)] else [key, utc_converter.call(value)] end end Hash[mappedData] end