Class: EventStoreClient::StoreAdapter::InMemory

Inherits:
Object
  • Object
show all
Defined in:
lib/event_store_client/store_adapter/in_memory.rb

Defined Under Namespace

Classes: Response

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#event_storeObject (readonly)

Returns the value of attribute event_store.



12
13
14
# File 'lib/event_store_client/store_adapter/in_memory.rb', line 12

def event_store
  @event_store
end

Instance Method Details

#ack(url) ⇒ Object



79
80
81
# File 'lib/event_store_client/store_adapter/in_memory.rb', line 79

def ack(url)
  # TODO: implement method body
end

#append_to_stream(stream_name, events, expected_version: nil) ⇒ Object

rubocop:disable Lint/UnusedMethodArgument,Metrics/LineLength



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/event_store_client/store_adapter/in_memory.rb', line 14

def append_to_stream(stream_name, events, expected_version: nil) # rubocop:disable Lint/UnusedMethodArgument,Metrics/LineLength
  event_store[stream_name] = [] unless event_store.key?(stream_name)
  [events].flatten.each do |event|
    event_store[stream_name].unshift(
      'eventId' => event.id,
      'data' => event.data,
      'eventType' => event.type,
      'metaData' => event.,
      'positionEventNumber' => event_store[stream_name].length
    )
  end
end

#consume_feed(stream_name, subscription_name) ⇒ Object



62
63
64
65
66
67
68
# File 'lib/event_store_client/store_adapter/in_memory.rb', line 62

def consume_feed(
  stream_name,
  subscription_name,
  **
)
  # TODO: implement method body
end

#delete_stream(stream_name, hard_delete: false) ⇒ Object

rubocop:disable Lint/UnusedMethodArgument



70
71
72
# File 'lib/event_store_client/store_adapter/in_memory.rb', line 70

def delete_stream(stream_name, hard_delete: false) # rubocop:disable Lint/UnusedMethodArgument
  event_store.delete(stream_name)
end

#join_streams(name, streams) ⇒ Object



83
# File 'lib/event_store_client/store_adapter/in_memory.rb', line 83

def join_streams(name, streams); end


74
75
76
77
# File 'lib/event_store_client/store_adapter/in_memory.rb', line 74

def link_to(stream_name, events, **)
  append_to_stream(stream_name, events)
  events
end

#read(stream_name, direction: 'forward', start: 0, resolve_links: nil) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/event_store_client/store_adapter/in_memory.rb', line 27

def read(stream_name, direction: 'forward', start: 0, resolve_links: nil)
  response =
    if direction == 'forward'
      read_stream_forward(stream_name, start: start)
    else
      read_stream_backward(stream_name, start: start)
    end

  res = Response.new(response.to_json, 200)

  return [] if res.body.nil? || res.body.empty?
  JSON.parse(res.body)['entries'].map do |entry|
    deserialize_event(entry)
  end.reverse
end

#read_all_from_stream(stream_name, direction: 'forward', start: 0, resolve_links: true) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/event_store_client/store_adapter/in_memory.rb', line 43

def read_all_from_stream(stream_name, direction: 'forward', start: 0, resolve_links: true)
  response =
    if direction == 'forward'
      read_stream_forward(stream_name, start: start)
    else
      read_stream_backward(stream_name, start: start)
    end
  res = Response.new(response.to_json, 200)

  return [] if res.body.nil? || res.body.empty?
    JSON.parse(res.body)['entries'].map do |entry|
      deserialize_event(entry)
    end.reverse
end

#subscribe_to_stream(stream_name, subscription_name) ⇒ Object



58
59
60
# File 'lib/event_store_client/store_adapter/in_memory.rb', line 58

def subscribe_to_stream(stream_name, subscription_name, **)
  # TODO: implement method body
end