Class: Events::BaseEvent

Inherits:
Object
  • Object
show all
Defined in:
lib/artsy-eventservice/presenters/events/base_event.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(user: nil, action:, model:) ⇒ BaseEvent

Returns a new instance of BaseEvent.



7
8
9
10
11
12
# File 'lib/artsy-eventservice/presenters/events/base_event.rb', line 7

def initialize(user: nil, action:, model:)
  @subject = user
  @verb = action
  @object = model
  @properties = nil
end

Instance Attribute Details

#objectObject (readonly)

Returns the value of attribute object.



6
7
8
# File 'lib/artsy-eventservice/presenters/events/base_event.rb', line 6

def object
  @object
end

#propertiesObject (readonly)

Returns the value of attribute properties.



6
7
8
# File 'lib/artsy-eventservice/presenters/events/base_event.rb', line 6

def properties
  @properties
end

#subjectObject (readonly)

Returns the value of attribute subject.



6
7
8
# File 'lib/artsy-eventservice/presenters/events/base_event.rb', line 6

def subject
  @subject
end

#verbObject (readonly)

Returns the value of attribute verb.



6
7
8
# File 'lib/artsy-eventservice/presenters/events/base_event.rb', line 6

def verb
  @verb
end

Instance Method Details

#jsonObject



33
34
35
36
37
38
# File 'lib/artsy-eventservice/presenters/events/base_event.rb', line 33

def json
  JSON.generate(verb: @verb,
                subject: subject,
                object: object,
                properties: properties)
end

#routing_keyObject



40
41
42
# File 'lib/artsy-eventservice/presenters/events/base_event.rb', line 40

def routing_key
  "#{@object.class.to_s.downcase.gsub('::', '-')}.#{@verb}"
end