Module: MessageStore::EventStore::StreamName::Pattern
- Defined in:
- lib/message_store/event_store/stream_name/pattern.rb
Class Method Summary collapse
- .category ⇒ Object
- .entity ⇒ Object
- .entity_and_type_list ⇒ Object
- .get ⇒ Object
- .optional(*parts) ⇒ Object
- .projection_prefix ⇒ Object
- .stream_id ⇒ Object
- .type_list ⇒ Object
Class Method Details
.category ⇒ Object
29 30 31 |
# File 'lib/message_store/event_store/stream_name/pattern.rb', line 29 def self.category /(?<category>#{entity_and_type_list})/ end |
.entity ⇒ Object
37 38 39 |
# File 'lib/message_store/event_store/stream_name/pattern.rb', line 37 def self.entity /(?<entity>[^-:]+)/ end |
.entity_and_type_list ⇒ Object
33 34 35 |
# File 'lib/message_store/event_store/stream_name/pattern.rb', line 33 def self.entity_and_type_list /#{entity}#{optional(':', type_list)}/ end |
.get ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/message_store/event_store/stream_name/pattern.rb', line 5 def self.get @pattern ||= %r{ \A #{optional(projection_prefix)} #{category} #{optional('-', stream_id)} \z }x end |
.optional(*parts) ⇒ Object
19 20 21 22 23 |
# File 'lib/message_store/event_store/stream_name/pattern.rb', line 19 def self.optional(*parts) inner_pattern = parts.join /(?:#{inner_pattern})?/ end |
.projection_prefix ⇒ Object
25 26 27 |
# File 'lib/message_store/event_store/stream_name/pattern.rb', line 25 def self.projection_prefix /\$[[:alnum:]]+-/ end |
.stream_id ⇒ Object
45 46 47 |
# File 'lib/message_store/event_store/stream_name/pattern.rb', line 45 def self.stream_id /(?<stream_id>[[:graph:]]+)/ end |
.type_list ⇒ Object
41 42 43 |
# File 'lib/message_store/event_store/stream_name/pattern.rb', line 41 def self.type_list /(?<type_list>[[:alnum:]+]+)/ end |