class EventSource::Event

Attributes

created_at[R]
data[R]
entity_id[R]
entity_type[R]
name[R]

Public Class Methods

build_from_data(data) click to toggle source
# File lib/event_source/event.rb, line 9
def build_from_data(data)
    event = self.new
    event.send(:new_from_data, data)
    event
end
create(name, entity, args) click to toggle source
# File lib/event_source/event.rb, line 15
def create(name, entity, args)
    event = self.new
    event.send(:new_from_entity, name, entity, args)
    event
end

Public Instance Methods

get_args() click to toggle source
# File lib/event_source/event.rb, line 22
def get_args
    JSON.parse(data)
end
save() click to toggle source
# File lib/event_source/event.rb, line 26
def save
    raise CannotSaveRebuiltEvent if @is_rebuilt
    EventSource::EventRepository.current.save(self)
end

Private Instance Methods

new_from_data(data) click to toggle source
# File lib/event_source/event.rb, line 43
def new_from_data(data)
    @name = data[:name]
    @entity_id = data[:entity_id]
    @data = data[:data]
    @created_at = data[:created_at]
    @entity_type = data[:entity_type]

    @is_rebuilt = true
end
new_from_entity(name, entity, args) click to toggle source
# File lib/event_source/event.rb, line 33
def new_from_entity(name, entity, args)
    @name = name.to_s
    @entity_id = entity.uid
    @data = args.to_json
    @created_at = Time.now
    @entity_type = entity.class.to_s.underscore

    @is_rebuilt = false
end