|
require 'google/protobuf' # google-protobuf (3.11.0)
|
|
require 'base64'
|
|
|
|
Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
add_message "AsperaEvent" do
|
|
optional :app_id, :string, 1
|
|
optional :app_version, :string, 2
|
|
optional :timestamp, :uint64, 3
|
|
optional :customer_id, :string, 4
|
|
optional :device_id, :string, 5
|
|
optional :event_id, :string, 6
|
|
optional :event_type, :string, 7
|
|
map :event_data, :string, :message, 8, "AsperaEvent.EventData"
|
|
end
|
|
add_message "AsperaEvent.EventData" do
|
|
oneof :data do
|
|
optional :string_val, :string, 1
|
|
optional :bytes_val, :bytes, 2
|
|
optional :int_val, :int64, 3
|
|
optional :float_val, :double, 4
|
|
optional :bool_val, :bool, 5
|
|
end
|
|
end
|
|
end
|
|
|
|
AsperaEvent = Google::Protobuf::DescriptorPool.generated_pool.lookup("AsperaEvent").msgclass
|
|
AsperaEvent::EventData = Google::Protobuf::DescriptorPool.generated_pool.lookup("AsperaEvent.EventData").msgclass
|
|
|
|
|
|
message = Base64::decode64("
|
|
CgRhc2NwEgw0LjIuMC4xODM0NDMY0JGnv86ltcMWIgZhc3BlcmEqBGFzY3Ay
|
|
JGIzYWE4ZmZhLTI3NjQtNDkxZS1iN2U0LWJkN2RmYmYxYjYyNDoPYmxvY2tf
|
|
bGluZV9zZW5kQjQKCnNlc3Npb25faWQSJgokNjdhZjYxOGUtN2JjMi00Yzkx
|
|
LTk2N2ItOGMwZmU0ODllNTE4QjEKB3hmZXJfaWQSJgokNjdhZjYxOGUtN2Jj
|
|
Mi00YzkxLTk2N2ItOGMwZmU0ODllNTE4Qg4KCmFjY2Vzc19rZXkSAEITCglk
|
|
aXJlY3Rpb24SBgoEc2VuZEISCgxibG9ja3NfdG90YWwSAhgDQhUKD2Jsb2Nr
|
|
c19vcmlnaW5hbBICGAJCFAoOZHVwX2xhc3RfYmxvY2sSAhgBQhAKCmJsb2Nr
|
|
c19yZXgSAhgBQhYKEGxvd19jb250aWdfYmxvY2sSAhgAQhMKDW5leHRfcnhf
|
|
YmxvY2sSAhgAQhMKDWN0bHBkdV9iYWRtYWMSAhgAQhYKEGN0bHBkdV9iYWRz
|
|
ZXFudW0SAhgAQhUKD3JleF9ibG9ja3NfcmN2ZBICGAFCEwoNcmV4X3JlcXNf
|
|
cmN2ZBICGAFCDgoIcmJ0X3NpemUSAhgAQhcKEXJfb3R0X251bV9zYW1wbGVz
|
|
EgIYAUINCgdyX290dF9xEgIYAEIQCgpyX290dF9za2V3EgIYAEITCg1udW1f
|
|
eG1pdF9kb25lEgIYAUIXChB0YXJnZXRfcmF0ZV9rYnBzEgMYkE5CEwoNbWlu
|
|
X3JhdGVfa2JwcxICGABCFQoOY2FsY19yYXRlX2ticHMSAxiIDkIXChB0b3Rh
|
|
bF9ieXRlc19zZW50EgMYsAFCHAoVdG90YWxfZmlsZV9ieXRlc19zZW50EgMY
|
|
sAFCFAoMZWxhcHNlZF91c2VjEgQYyKAI
|
|
")
|
|
|
|
puts event = AsperaEvent.decode(message)
|