Class: RubyEventStore::InstrumentedRepository
  
  
  
  
  
    - Inherits:
- 
      Object
      
        
          - Object
- RubyEventStore::InstrumentedRepository
 show all
    - Defined in:
- lib/ruby_event_store/instrumented_repository.rb
 
  
    
      Instance Method Summary
      collapse
    
    
  
  Constructor Details
  
    
  
  
    
Returns a new instance of InstrumentedRepository.
   
 
  
  
    | 
5
6
7
8 | # File 'lib/ruby_event_store/instrumented_repository.rb', line 5
def initialize(repository, instrumentation)
  @repository = repository
  @instrumentation = instrumentation
end | 
 
  
 
  Dynamic Method Handling
  
    This class handles dynamic methods through the method_missing method
    
  
  
    
  
  
    #method_missing(method_name, *arguments, **keyword_arguments, &block)  ⇒ Object 
  
  
  
  
    | 
52
53
54
55
56
57
58 | # File 'lib/ruby_event_store/instrumented_repository.rb', line 52
def method_missing(method_name, *arguments, **keyword_arguments, &block)
  if respond_to?(method_name)
    repository.public_send(method_name, *arguments, **keyword_arguments, &block)
  else
    super
  end
end | 
 
  
 
  
    Instance Method Details
    
      
  
  
    #append_to_stream(records, stream, expected_version)  ⇒ Object 
  
  
  
  
    | 
10
11
12
13
14 | # File 'lib/ruby_event_store/instrumented_repository.rb', line 10
def append_to_stream(records, stream, expected_version)
  instrumentation.instrument("append_to_stream.repository.rails_event_store", events: records, stream: stream) do
    repository.append_to_stream(records, stream, expected_version)
  end
end | 
 
    
      
  
  
    #count(specification)  ⇒ Object 
  
  
  
  
    | 
34
35
36
37
38 | # File 'lib/ruby_event_store/instrumented_repository.rb', line 34
def count(specification)
  instrumentation.instrument("count.repository.rails_event_store", specification: specification) do
    repository.count(specification)
  end
end | 
 
    
      
  
  
    #delete_stream(stream)  ⇒ Object 
  
  
  
  
    | 
22
23
24
25
26 | # File 'lib/ruby_event_store/instrumented_repository.rb', line 22
def delete_stream(stream)
  instrumentation.instrument("delete_stream.repository.rails_event_store", stream: stream) do
    repository.delete_stream(stream)
  end
end | 
 
    
      
  
  
    #link_to_stream(event_ids, stream, expected_version)  ⇒ Object 
  
  
  
  
    | 
16
17
18
19
20 | # File 'lib/ruby_event_store/instrumented_repository.rb', line 16
def link_to_stream(event_ids, stream, expected_version)
  instrumentation.instrument("link_to_stream.repository.rails_event_store", event_ids: event_ids, stream: stream) do
    repository.link_to_stream(event_ids, stream, expected_version)
  end
end | 
 
    
      
  
  
    #read(specification)  ⇒ Object 
  
  
  
  
    | 
28
29
30
31
32 | # File 'lib/ruby_event_store/instrumented_repository.rb', line 28
def read(specification)
  instrumentation.instrument("read.repository.rails_event_store", specification: specification) do
    repository.read(specification)
  end
end | 
 
    
      
  
  
    #respond_to_missing?(method_name, _include_private)  ⇒ Boolean 
  
  
  
  
    | 
60
61
62 | # File 'lib/ruby_event_store/instrumented_repository.rb', line 60
def respond_to_missing?(method_name, _include_private)
  repository.respond_to?(method_name)
end | 
 
    
      
  
  
    #streams_of(event_id)  ⇒ Object 
  
  
  
  
    | 
46
47
48
49
50 | # File 'lib/ruby_event_store/instrumented_repository.rb', line 46
def streams_of(event_id)
  instrumentation.instrument("streams_of.repository.rails_event_store", event_id: event_id) do
    repository.streams_of(event_id)
  end
end | 
 
    
      
  
  
    #update_messages(messages)  ⇒ Object 
  
  
  
  
    | 
40
41
42
43
44 | # File 'lib/ruby_event_store/instrumented_repository.rb', line 40
def update_messages(messages)
  instrumentation.instrument("update_messages.repository.rails_event_store", messages: messages) do
    repository.update_messages(messages)
  end
end |