Class: EventSource::EventRepository

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from MemoizeInstance

create, current, default_args

Constructor Details

#initialize(options) ⇒ EventRepository



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

def initialize(options)
    if options[:in_memory] 
        @db = Sequel.sqlite
        init_in_memory_schema
    end
end

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

Instance Method Details

#get_events(type, uid) ⇒ Object



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

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:



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

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