evt-message_store 1.2.0.0 → 2.3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f11bc763f84ee7713a149dcbd82c93a05c3bd6bc77ccf6238f3eddff404547ab
4
- data.tar.gz: 58a75a34e87d818aed83f73bfe446a0435ba6dbc6e7266cb4a0230878d81cc62
3
+ metadata.gz: 156de8cf748968c091d28df2d2ce7b9c25d0a996ada4d6f473a1a31667bee851
4
+ data.tar.gz: 81aab6e0f701fdf1c9c9263c0548b6f8f22d8b75241b3720af314e2cc47b211d
5
5
  SHA512:
6
- metadata.gz: c4b2f5af783cbc5dd299bcd6c00072dfa2c8da0c34917f10967714a694cb872bd2186cfeb580b8886454e39b0bbf2cf3da0fb648945bec8d965752a261a8770d
7
- data.tar.gz: 81e9df220c30010d3fe1863d521b2407940f674005c00569763b0e8da6fbbf8bace91cc06a9e2e55ff7bea6f1bee28d6351ed4c3d7ed5268b00afa7a5638cccd
6
+ metadata.gz: 83be616f3481e506586e349480ff6cbb2e53d369aae02eb1de2c312d3c94e04c8a455652a4581a08ba57fb15cc8a7765043ac42a334aaf13a1ca48931865ce61
7
+ data.tar.gz: 6df8f35fae0c431eaa6fa79716eb254953e39593f7b76ebea2c1310ed928c0c65974bb072b902a608d23404d30bd771afd5b8fe1511660a5ab3778f97a894c25
@@ -1,7 +1,7 @@
1
1
  module MessageStore
2
2
  module Controls
3
3
  module Category
4
- def self.example(category: nil, randomize_category: nil)
4
+ def self.example(category: nil, type: nil, types: nil, randomize_category: nil)
5
5
  if randomize_category.nil?
6
6
  if !category.nil?
7
7
  randomize_category = false
@@ -16,6 +16,8 @@ module MessageStore
16
16
  category = "#{category}#{SecureRandom.hex(16)}XX"
17
17
  end
18
18
 
19
+ category = Controls::StreamName.stream_name(category, type: type, types: types)
20
+
19
21
  category
20
22
  end
21
23
  end
@@ -7,6 +7,7 @@ module MessageStore
7
7
  include Get
8
8
 
9
9
  attr_accessor :stream_name
10
+ alias :category :stream_name
10
11
 
11
12
  def batch_size
12
13
  @batch_size ||= 1
@@ -2,49 +2,57 @@ module MessageStore
2
2
  module StreamName
3
3
  Error = Class.new(RuntimeError)
4
4
 
5
- def self.id_delimiter
5
+ def self.id_separator
6
6
  '-'
7
7
  end
8
8
 
9
- def self.category_delimiter
10
- ':'
9
+ def self.compound_id_separator
10
+ '+'
11
11
  end
12
12
 
13
- def self.type_delimiter
14
- '+'
13
+ def self.category_type_separator
14
+ ':'
15
15
  end
16
16
 
17
- class << self
18
- alias :compound_id_delimiter :type_delimiter
17
+ def self.compound_type_separator
18
+ '+'
19
19
  end
20
20
 
21
- def self.stream_name(category_name, id=nil, type: nil, types: nil)
22
- if category_name == nil
23
- raise Error, "Category name must not be omitted from stream name"
21
+ def self.stream_name(category, stream_id=nil, cardinal_id: nil, id: nil, ids: nil, type: nil, types: nil)
22
+ if category == nil
23
+ raise Error, "Category must not be omitted from stream name"
24
24
  end
25
25
 
26
- types = Array(types)
27
- types.unshift(type) unless type.nil?
26
+ stream_name = category
28
27
 
29
- type_list = nil
30
- type_list = types.join(type_delimiter) unless types.empty?
28
+ type_list = []
29
+ type_list.concat(Array(type))
30
+ type_list.concat(Array(types))
31
31
 
32
- stream_name = category_name
33
- stream_name = "#{stream_name}#{category_delimiter}#{type_list}" unless type_list.nil?
32
+ type_part = type_list.join(compound_type_separator)
34
33
 
35
- if not id.nil?
36
- if id.is_a?(Array)
37
- id = id.join(compound_id_delimiter)
38
- end
34
+ if not type_part.empty?
35
+ stream_name = "#{stream_name}#{category_type_separator}#{type_part}"
39
36
  end
40
37
 
41
- stream_name = "#{stream_name}#{id_delimiter}#{id}" unless id.nil?
38
+ id_list = []
39
+ id_list << cardinal_id if not cardinal_id.nil?
40
+
41
+ id_list.concat(Array(stream_id))
42
+ id_list.concat(Array(id))
43
+ id_list.concat(Array(ids))
44
+
45
+ id_part = id_list.join(compound_id_separator)
46
+
47
+ if not id_part.empty?
48
+ stream_name = "#{stream_name}#{id_separator}#{id_part}"
49
+ end
42
50
 
43
51
  stream_name
44
52
  end
45
53
 
46
54
  def self.split(stream_name)
47
- stream_name.split(id_delimiter, 2)
55
+ stream_name.split(id_separator, 2)
48
56
  end
49
57
 
50
58
  def self.get_id(stream_name)
@@ -56,7 +64,15 @@ module MessageStore
56
64
 
57
65
  return [] if ids.nil?
58
66
 
59
- ids.split(compound_id_delimiter)
67
+ ids.split(compound_id_separator)
68
+ end
69
+
70
+ def self.get_cardinal_id(stream_name)
71
+ id = get_id(stream_name)
72
+
73
+ return nil if id.nil?
74
+
75
+ id.split(compound_id_separator).first
60
76
  end
61
77
 
62
78
  def self.get_category(stream_name)
@@ -64,15 +80,15 @@ module MessageStore
64
80
  end
65
81
 
66
82
  def self.category?(stream_name)
67
- !stream_name.include?(id_delimiter)
83
+ !stream_name.include?(id_separator)
68
84
  end
69
85
 
70
86
  def self.get_category_type(stream_name)
71
- return nil unless stream_name.include?(category_delimiter)
87
+ return nil unless stream_name.include?(category_type_separator)
72
88
 
73
89
  category = get_category(stream_name)
74
90
 
75
- category.split(category_delimiter)[1]
91
+ category.split(category_type_separator)[1]
76
92
  end
77
93
 
78
94
  def self.get_type(*args)
@@ -84,7 +100,7 @@ module MessageStore
84
100
 
85
101
  return [] if type_list.nil?
86
102
 
87
- type_list.split(type_delimiter)
103
+ type_list.split(compound_type_separator)
88
104
  end
89
105
 
90
106
  def self.get_types(*args)
@@ -92,7 +108,7 @@ module MessageStore
92
108
  end
93
109
 
94
110
  def self.get_entity_name(stream_name)
95
- get_category(stream_name).split(category_delimiter)[0]
111
+ get_category(stream_name).split(category_type_separator)[0]
96
112
  end
97
113
  end
98
114
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evt-message_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0.0
4
+ version: 2.3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-03 00:00:00.000000000 Z
11
+ date: 2019-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-casing