Class: EventSource::EventRepository

Inherits:
Object
  • Object
show all
Extended by:
MemoizeInstance
Defined in:
lib/event_source/event_repository.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from MemoizeInstance

current, default_args

Instance Attribute Details

#dbObject (readonly)

Returns the value of attribute db.



7
8
9
# File 'lib/event_source/event_repository.rb', line 7

def db
  @db
end

Class Method Details

.create(options) ⇒ Object



10
11
12
# File 'lib/event_source/event_repository.rb', line 10

def create(options)
    @instance = self.new(options)
end

Instance Method Details

#get_events(type, uid) ⇒ Object



25
26
27
28
# File 'lib/event_source/event_repository.rb', line 25

def get_events(type, uid)
    data = @db[:events].where(entity_type: type.to_s, entity_id: uid).order(:created_at)
    data.map {|d| create_event(d)}
end

#save(event) ⇒ Object

Raises:



15
16
17
18
19
20
21
22
23
# File 'lib/event_source/event_repository.rb', line 15

def save(event)
    count = @db[:events].exclude_where(entity_type: event.entity_type).
                         where(entity_id: event.entity_id).count

    raise InvalidEntityID if count > 0
    @db[:events].insert(name: event.name, entity_type: event.entity_type,
                        entity_id: event.entity_id, data: event.data,
                        created_at: event.created_at)
end