Module: MessageStore::StreamName
- Defined in:
- lib/message_store/stream_name.rb
Constant Summary collapse
- Error =
Class.new(RuntimeError)
Class Method Summary collapse
- .category?(stream_name) ⇒ Boolean
- .category_delimiter ⇒ Object
- .get_category(stream_name) ⇒ Object
- .get_entity_name(stream_name) ⇒ Object
- .get_id(stream_name) ⇒ Object
- .get_type_list(stream_name) ⇒ Object
- .get_types(stream_name) ⇒ Object
- .id_delimiter ⇒ Object
- .split(stream_name) ⇒ Object
- .stream_name(category_name, id = nil, type: nil, types: nil) ⇒ Object
- .type_delimiter ⇒ Object
Class Method Details
.category?(stream_name) ⇒ Boolean
47 48 49 |
# File 'lib/message_store/stream_name.rb', line 47 def self.category?(stream_name) !stream_name.include?(id_delimiter) end |
.category_delimiter ⇒ Object
9 10 11 |
# File 'lib/message_store/stream_name.rb', line 9 def self.category_delimiter ':' end |
.get_category(stream_name) ⇒ Object
43 44 45 |
# File 'lib/message_store/stream_name.rb', line 43 def self.get_category(stream_name) split(stream_name)[0] end |
.get_entity_name(stream_name) ⇒ Object
67 68 69 |
# File 'lib/message_store/stream_name.rb', line 67 def self.get_entity_name(stream_name) get_category(stream_name).split(category_delimiter)[0] end |
.get_id(stream_name) ⇒ Object
39 40 41 |
# File 'lib/message_store/stream_name.rb', line 39 def self.get_id(stream_name) split(stream_name)[1] end |
.get_type_list(stream_name) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/message_store/stream_name.rb', line 51 def self.get_type_list(stream_name) return nil unless stream_name.include?(category_delimiter) category = get_category(stream_name) category.split(category_delimiter)[1] end |
.get_types(stream_name) ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/message_store/stream_name.rb', line 59 def self.get_types(stream_name) type_list = get_type_list(stream_name) return [] if type_list.nil? type_list.split(type_delimiter) end |
.id_delimiter ⇒ Object
5 6 7 |
# File 'lib/message_store/stream_name.rb', line 5 def self.id_delimiter '-' end |
.split(stream_name) ⇒ Object
35 36 37 |
# File 'lib/message_store/stream_name.rb', line 35 def self.split(stream_name) stream_name.split(id_delimiter, 2) end |
.stream_name(category_name, id = nil, type: nil, types: nil) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/message_store/stream_name.rb', line 17 def self.stream_name(category_name, id=nil, type: nil, types: nil) if category_name == nil raise Error, "Category name must not be omitted from stream name" end types = Array(types) types.unshift(type) unless type.nil? type_list = nil type_list = types.join(type_delimiter) unless types.empty? stream_name = category_name stream_name = "#{stream_name}#{category_delimiter}#{type_list}" unless type_list.nil? stream_name = "#{stream_name}#{id_delimiter}#{id}" unless id.nil? stream_name end |
.type_delimiter ⇒ Object
13 14 15 |
# File 'lib/message_store/stream_name.rb', line 13 def self.type_delimiter '+' end |