class EventBus::Event
Attributes
body[R]
headers[R]
name[R]
schema_version[R]
Public Class Methods
new(name, body, schema_version = 1.0)
click to toggle source
# File lib/event_bus/event.rb, line 5 def initialize(name, body, schema_version = 1.0) @name = name @body = JSON.parse(body) rescue body @schema_version = @body['headers']['schemaVersion'] rescue schema_version generate_headers if has_name? build_payload if @body && @body.has_key?('headers') end
Public Instance Methods
has_body?()
click to toggle source
# File lib/event_bus/event.rb, line 20 def has_body? body && !body.empty? end
has_name?()
click to toggle source
# File lib/event_bus/event.rb, line 24 def has_name? name && !name.empty? end
payload()
click to toggle source
# File lib/event_bus/event.rb, line 13 def payload { headers: headers, body: body }.to_json end
Private Instance Methods
build_payload()
click to toggle source
# File lib/event_bus/event.rb, line 30 def build_payload @headers = body['headers'] @body = body['body'] end
generate_headers()
click to toggle source
# File lib/event_bus/event.rb, line 35 def generate_headers header_spec = name.split('.') @headers = { appName: EventBus::Config::APP_NAME, resource: header_spec[0], origin: header_spec[1], action: header_spec[2], schemaVersion: schema_version } end